Direct compilation of .coal files #3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
workflow_dispatch: | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
LISP_IMPL: ["sbcl", "allegro", "ccl"] | |
COALTON_ENV: ["release", "development"] | |
SAFETY: ["0", "3"] | |
DISABLE_SPECIALIZATION: ["1", "0"] | |
exclude: | |
# Since we don't have a way of switching safety on allegro or ccl, we can | |
# just ignore high safety tests. | |
- LISP_IMPL: "allegro" | |
SAFETY: "3" | |
- LISP_IMPL: "ccl" | |
SAFETY: "3" | |
permissions: | |
packages: read | |
container: | |
image: ghcr.io/coalton-lang/${{ matrix.LISP_IMPL }}-base | |
credentials: | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
env: | |
# Tell ASDF to look through our repo recursively | |
# See https://github.com/actions/runner/issues/2058 | |
CL_SOURCE_REGISTRY: "/__w/coalton/coalton//" | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Run SBCL tests | |
if: matrix.LISP_IMPL == 'sbcl' | |
env: | |
COALTON_ENV: ${{ matrix.COALTON_ENV }} | |
COALTON_DISABLE_SPECIALIZATION: ${{ matrix.DISABLE_SPECIALIZATION }} | |
run: | | |
cat <<EOF > run-tests.lisp | |
(sb-ext:restrict-compiler-policy 'safety ${{ matrix.SAFETY }}) | |
(ql:quickload :coalton/tests) | |
(asdf:test-system :coalton/tests) | |
; TODO: Remove this or add tests for these programs. | |
(asdf:load-system :small-coalton-programs) | |
EOF | |
sbcl --noinform --non-interactive --load run-tests.lisp | |
- name: Run Allegro CL tests | |
if: matrix.LISP_IMPL == 'allegro' | |
env: | |
COALTON_ENV: ${{ matrix.COALTON_ENV }} | |
COALTON_DISABLE_SPECIALIZATION: ${{ matrix.DISABLE_SPECIALIZATION }} | |
run: | | |
cat <<EOF > run-tests.lisp | |
(ql:quickload :coalton/tests) | |
(asdf:test-system :coalton/tests) | |
; TODO: Remove this or add tests for these programs. | |
(asdf:load-system :small-coalton-programs) | |
EOF | |
cat run-tests.lisp | alisp --batch | |
- name: Run Clozure CL tests | |
if: matrix.LISP_IMPL == 'ccl' | |
env: | |
COALTON_ENV: ${{ matrix.COALTON_ENV }} | |
COALTON_DISABLE_SPECIALIZATION: ${{ matrix.DISABLE_SPECIALIZATION }} | |
run: | | |
cat <<EOF > run-tests.lisp | |
(ql:quickload :coalton/tests) | |
(asdf:test-system :coalton/tests) | |
; TODO: Remove this or add tests for these programs. | |
(asdf:load-system :small-coalton-programs) | |
EOF | |
ccl64-wrapped.sh --batch --load run-tests.lisp |