-
Notifications
You must be signed in to change notification settings - Fork 70
88 lines (81 loc) · 2.93 KB
/
main.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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"]
HEURISTIC_INLINING: ["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 }}
COALTON_HEURISTIC_INLINING: ${{ matrix.HEURISTIC_INLINING }}
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 }}
COALTON_HEURISTIC_INLINING: ${{ matrix.HEURISTIC_INLINING }}
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 }}
COALTON_HEURISTIC_INLINING: ${{ matrix.HEURISTIC_INLINING }}
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