name: CI # Controls when the workflow will run on: # Triggers the workflow on push or pull request events but only for the master branch push: branches: [ master ] pull_request: branches: [ master ] # 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@v19 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 - name: setup lisp run: | set -x nix profile list export PATH="$HOME/.nix-profile/bin:$PATH" echo $PATH ls ~/.nix-profile/bin sbcl --quit 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: | export PATH="$HOME/.nix-profile/bin:$PATH" cd "$GITHUB_WORKSPACE" ln -s "$GITHUB_WORKSPACE" "$HOME/quicklisp/local-projects" sbcl --disable-debugger --no-userinit \ --load "$HOME/quicklisp/setup.lisp" \ --eval "(mapcar 'asdf:load-asd (directory \"*.asd\"))" \ --eval "(handler-case (ql:quickload :data-lens) (error (c) (format t \"~a\" c) (uiop:quit 42)))" \ --eval "(handler-case (ql:quickload :data-lens/transducers) (error (c) (format t \"~a\" c) (uiop:quit 43)))" \ --eval "(handler-case (asdf:test-system :data-lens) (error (c) (format t \"~a\" c) (uiop:quit 44)))" \ --eval "(handler-case (asdf:test-system :data-lens/transducers) (error (c) (format t \"~a\" c) (uiop:quit 45)))" \ --quit