Run tests on different lisp implementations. #273
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": [ | |
"master" | |
] | |
}, | |
"pull_request": null, | |
"schedule": [ | |
{ | |
"cron": "0 10 * * 1" | |
} | |
] | |
}, | |
"jobs": { | |
"linter": { | |
"runs-on": "ubuntu-latest", | |
"env": { | |
"OS": "ubuntu-latest", | |
"QUICKLISP_DIST": "quicklisp", | |
"LISP": "sbcl-bin" | |
}, | |
"steps": [ | |
{ | |
"name": "Checkout Code", | |
"uses": "actions/checkout@v4" | |
}, | |
{ | |
"name": "Setup Common Lisp Environment", | |
"uses": "40ants/setup-lisp@v4", | |
"with": { | |
"asdf-system": "40ants-ci", | |
"cache": "true" | |
} | |
}, | |
{ | |
"name": "Change dist to Ultralisp if qlfile does not exist", | |
"run": "if [[ ! -e qlfile ]]; then echo 'dist ultralisp http://dist.ultralisp.org' > qlfile; fi", | |
"shell": "bash" | |
}, | |
{ | |
"name": "Update Qlot", | |
"run": "qlot update --no-deps", | |
"shell": "bash" | |
}, | |
{ | |
"name": "Install SBLint wrapper", | |
"run": "qlot exec ros install 40ants-asdf-system 40ants-linter", | |
"shell": "bash" | |
}, | |
{ | |
"name": "Run Linter", | |
"run": "qlot exec 40ants-linter --system \"40ants-ci, 40ants-ci-tests\" --imports", | |
"shell": "bash" | |
} | |
] | |
}, | |
"critic": { | |
"runs-on": "ubuntu-latest", | |
"env": { | |
"OS": "ubuntu-latest", | |
"QUICKLISP_DIST": "quicklisp", | |
"LISP": "sbcl-bin" | |
}, | |
"steps": [ | |
{ | |
"name": "Checkout Code", | |
"uses": "actions/checkout@v4" | |
}, | |
{ | |
"name": "Setup Common Lisp Environment", | |
"uses": "40ants/setup-lisp@v4", | |
"with": { | |
"asdf-system": "40ants-ci", | |
"cache": "true" | |
} | |
}, | |
{ | |
"name": "Change dist to Ultralisp", | |
"run": "echo 'dist ultralisp http://dist.ultralisp.org' > qlfile", | |
"shell": "bash" | |
}, | |
{ | |
"name": "Update Qlot", | |
"run": "qlot update || qlot update", | |
"shell": "bash" | |
}, | |
{ | |
"name": "Install LISP-CRITIC wrapper", | |
"run": "qlot exec ros install 40ants-critic", | |
"shell": "bash" | |
}, | |
{ | |
"name": "Run Critic for \"40ants-ci\" system", | |
"run": "qlot exec lisp-critic --ignore function-too-long,check-prefix 40ants-ci", | |
"shell": "bash" | |
} | |
] | |
}, | |
"run-tests": { | |
"strategy": { | |
"fail-fast": false, | |
"matrix": { | |
"os": [ | |
"ubuntu-latest", | |
"macos-latest" | |
], | |
"quicklisp": [ | |
"quicklisp", | |
"ultralisp" | |
], | |
"lisp": [ | |
"sbcl-bin", | |
"ccl-bin" | |
] | |
} | |
}, | |
"runs-on": "${{ matrix.os }}", | |
"env": { | |
"OS": "${{ matrix.os }}", | |
"QUICKLISP_DIST": "${{ matrix.quicklisp }}", | |
"LISP": "${{ matrix.lisp }}" | |
}, | |
"steps": [ | |
{ | |
"name": "Checkout Code", | |
"uses": "actions/checkout@v4" | |
}, | |
{ | |
"name": "Setup Common Lisp Environment", | |
"uses": "40ants/setup-lisp@v4", | |
"with": { | |
"asdf-system": "40ants-ci", | |
"qlfile-template": "{% ifequal quicklisp_dist \"ultralisp\" %}\ndist ultralisp http://dist.ultralisp.org\n{% endifequal %}", | |
"cache": "true" | |
} | |
}, | |
{ | |
"name": "Run Tests", | |
"uses": "40ants/run-tests@v2", | |
"with": { | |
"asdf-system": "40ants-ci", | |
"coveralls-token": "\n${{ matrix.lisp == 'sbcl-bin' &&\n matrix.os == 'ubuntu-latest' &&\n matrix.quicklisp == 'ultralisp' &&\n secrets.github_token }}" | |
} | |
} | |
] | |
}, | |
"check-ros-config": { | |
"runs-on": "ubuntu-latest", | |
"env": { | |
"OS": "ubuntu-latest", | |
"QUICKLISP_DIST": "quicklisp", | |
"LISP": "ccl-bin" | |
}, | |
"steps": [ | |
{ | |
"name": "Checkout Code", | |
"uses": "actions/checkout@v4" | |
}, | |
{ | |
"name": "Setup Common Lisp Environment", | |
"uses": "40ants/setup-lisp@v4", | |
"with": { | |
"asdf-system": "40ants-ci", | |
"cache": "true" | |
} | |
}, | |
{ | |
"name": "Show Roswell Config", | |
"run": "ros config", | |
"shell": "bash" | |
}, | |
{ | |
"name": "Custom ENV", | |
"run": "echo $CUSTOM_ENV", | |
"shell": "bash", | |
"env": { | |
"CUSTOM-ENV": "Hello world!" | |
} | |
} | |
] | |
} | |
} | |
} |