git.fiddlerwoaroof.com
Raw Blame History
name: CI

# Controls when the workflow will run
on:
  # Triggers the workflow on push or pull request events but only for the main branch
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  # This workflow contains a single job called "build"
  build:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest

    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/checkout@v2

      - uses: cachix/install-nix-action@v15
        with:
          extra_nix_config: |
            access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}

      # Runs a set of commands using the runners shell
      - name: setup deps
        run: |
          set -x
          cd

          nix profile install nixpkgs\#sbcl
          command -v sbcl || exit 36

          wget 'https://beta.quicklisp.org/quicklisp.lisp'
          [[ -f ./quicklisp.lisp ]] || exit 37

          sbcl --eval '(require :uiop)' \
               --load quicklisp.lisp \
               --eval '(handler-case (quicklisp-quickstart:install) (error () (uiop:quit 38)))' \
               --quit
          [[ -f "$HOME"/quicklisp/setup.lisp ]] || exit 39

      - name: run tests
        run: |
          cd "$GITHUB_WORKSPACE"
          sbcl --no-userinit \
               --disable-debugger \
               --load "$HOME/quicklisp/setup.lisp" \
               --eval "(mapcar 'asdf:load-asd (directory \"*.asd\"))" \
               --eval "(ql:quickload :uiop)" \
               --eval "(defvar cl-user::*exit-on-test-failures* t)" \
               --eval "(ql:quickload :reazon-cl/test)" \
               --eval "(handler-case (asdf:test-system :reazon-cl/test) (error () (uiop:quit 42)))" \
               --quit