-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
352 additions
and
224 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,161 +1,188 @@ | ||
name: 'CI' | ||
|
||
on: | ||
# This will run tests on pushes | ||
# to master branch or on pull merges: | ||
push: | ||
branches: | ||
- 'main' | ||
- 'master' | ||
# This will run tests for every pull request: | ||
pull_request: | ||
# Rerun tests at 10 AM every Monday | ||
# to check if they still work with latest dependencies. | ||
schedule: | ||
- cron: '0 10 * * 1' | ||
|
||
jobs: | ||
linter: | ||
runs-on: ubuntu-latest | ||
env: | ||
LISP: sbcl-bin | ||
steps: | ||
- uses: actions/checkout@v1 | ||
- uses: 40ants/setup-lisp@v1 | ||
with: | ||
asdf-system: cl-info | ||
- name: Install SBLint | ||
run: | | ||
qlot exec ros install cxxxr/sblint | ||
- name: Run Linter | ||
run: | | ||
qlot exec sblint cl-info.asd cl-info-test.asd | ||
tests: | ||
runs-on: ${{ matrix.os }} | ||
# continue-on-error: ${{ matrix.can-fail || false }} | ||
|
||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: | ||
- ubuntu-latest | ||
- macos-latest | ||
quicklisp-dist: | ||
- quicklisp | ||
- ultralisp | ||
lisp: | ||
- sbcl-bin | ||
- ccl-bin | ||
- ecl | ||
- abcl | ||
- allegro | ||
- clisp | ||
- cmucl | ||
exclude: | ||
# Seems allegro is does not support 64bit OSX. | ||
# Unable to install it using Roswell: | ||
# alisp is not executable. Missing 32bit glibc? | ||
- os: macos-latest | ||
lisp: allegro | ||
# CLISP on OSX is built without support for threads, | ||
# but Rove depends on bordeaux-threads and it fails to load | ||
# https://github.com/roswell/roswell/issues/461 | ||
- os: macos-latest | ||
lisp: clisp | ||
quicklisp-dist: ultralisp | ||
# CMUCL is 32bit and cant' work on 64bit OSX: | ||
# .roswell/impls/x86-64/darwin/cmu-bin/21d/bin/lisp is not executable. Missing 32bit glibc? | ||
- os: macos-latest | ||
lisp: cmucl | ||
# CLisp on Ubuntu can't be installed because of the error: | ||
# #<FOREIGN-VARIABLE "rl_readline_state" #x00007FA93E698850> does not have | ||
# the required size or alignment | ||
- os: ubuntu-latest | ||
lisp: clisp | ||
# Disabled because Rove does not work on this configuration: | ||
# https://github.com/fukamachi/rove/issues/47 | ||
- os: ubuntu-latest | ||
lisp: allegro | ||
# CMUCL on ubuntu is built without threading support | ||
# but Rove depends on bordeaux-threads and it fails to load | ||
# https://github.com/roswell/roswell/issues/461 | ||
- os: ubuntu-latest | ||
lisp: cmucl | ||
|
||
env: | ||
LISP: ${{ matrix.lisp }} | ||
OS: ${{ matrix.os }} | ||
QUICKLISP_DIST: ${{ matrix.quicklisp-dist }} | ||
|
||
steps: | ||
- uses: actions/checkout@v1 | ||
- name: Grant All Perms to Make Cache Restoring Possible | ||
run: | | ||
sudo mkdir -p /usr/local/etc/roswell | ||
sudo chown "${USER}" /usr/local/etc/roswell | ||
# Here the ros binary will be restored: | ||
sudo chown "${USER}" /usr/local/bin | ||
- name: Get Current Month | ||
id: current-month | ||
run: | | ||
echo "::set-output name=value::$(date -u "+%Y-%m")" | ||
- name: Cache Roswell Setup | ||
id: cache | ||
uses: actions/cache@v2 | ||
env: | ||
cache-name: cache-roswell | ||
with: | ||
path: | | ||
qlfile | ||
qlfile.lock | ||
/usr/local/bin/ros | ||
~/.cache/common-lisp/ | ||
~/.roswell | ||
/usr/local/etc/roswell | ||
.qlot | ||
key: "${{ steps.current-month.outputs.value }}-${{ env.cache-name }}-${{ matrix.os }}-${{ matrix.quicklisp-dist }}-${{ matrix.lisp }}-${{ hashFiles('qlfile.lock') }}" | ||
- name: Restore Path To Cached Files | ||
run: | | ||
echo $HOME/.roswell/bin >> $GITHUB_PATH | ||
echo .qlot/bin >> $GITHUB_PATH | ||
if: steps.cache.outputs.cache-hit == 'true' | ||
- uses: 40ants/setup-lisp@v1 | ||
with: | ||
asdf-system: cl-info | ||
qlfile-template: | | ||
{% ifequal quicklisp_dist "ultralisp" %} | ||
dist ultralisp http://dist.ultralisp.org | ||
{% endifequal %} | ||
github mgl-pax svetlyak40wt/mgl-pax :branch mgl-pax-minimal | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
|
||
- name: Check Roswell setup | ||
run: ros config | ||
|
||
- uses: 40ants/run-tests@v2 | ||
with: | ||
asdf-system: cl-info | ||
coveralls-token: | | ||
${{ matrix.lisp == 'sbcl-bin' && | ||
matrix.os == 'ubuntu-latest' && | ||
matrix.quicklisp-dist == 'ultralisp' && | ||
secrets.github_token }} | ||
# This is additional step to check | ||
# a command line script | ||
- name: Run Command Line Version | ||
run: | | ||
echo ::group::Help Argument | ||
qlot exec cl-info --help | ||
echo ::endgroup:: | ||
echo ::group::Version Argument | ||
qlot exec cl-info --version | ||
echo ::endgroup:: | ||
echo ::group::Lisp Systems Info | ||
qlot exec cl-info cl-info defmain | ||
echo ::endgroup:: | ||
{ | ||
"name": "CI", | ||
"on": { | ||
"push": { | ||
"branches": [ | ||
"workflow-generator", | ||
"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@v1" | ||
}, | ||
{ | ||
"name": "Grant All Perms to Make Cache Restoring Possible", | ||
"run": "sudo mkdir -p /usr/local/etc/roswell\n sudo chown \"${USER}\" /usr/local/etc/roswell\n # Here the ros binary will be restored:\n sudo chown \"${USER}\" /usr/local/bin", | ||
"shell": "bash" | ||
}, | ||
{ | ||
"name": "Get Current Month", | ||
"id": "current-month", | ||
"run": "echo \"::set-output name=value::$(date -u \"+%Y-%m\")\"", | ||
"shell": "bash" | ||
}, | ||
{ | ||
"name": "Cache Roswell Setup", | ||
"id": "cache", | ||
"uses": "actions/cache@v2", | ||
"with": { | ||
"path": "qlfile\n qlfile.lock\n /usr/local/bin/ros\n ~/.cache/common-lisp/\n ~/.roswell\n /usr/local/etc/roswell\n .qlot", | ||
"key": "${{ steps.current-month.outputs.value }}-${{ env.cache-name }}-ubuntu-latest-quicklisp-sbcl-bin-${{ hashFiles('qlfile.lock') }}" | ||
} | ||
}, | ||
{ | ||
"name": "Restore Path To Cached Files", | ||
"run": "echo $HOME/.roswell/bin >> $GITHUB_PATH\n echo .qlot/bin >> $GITHUB_PATH", | ||
"shell": "bash", | ||
"if": "steps.cache.outputs.cache-hit == 'true'" | ||
}, | ||
{ | ||
"name": "Setup Common Lisp Environment", | ||
"uses": "40ants/setup-lisp@v1", | ||
"with": { | ||
"asdf-system": "cl-info" | ||
}, | ||
"if": "steps.cache.outputs.cache-hit != 'true'" | ||
}, | ||
{ | ||
"name": "Install SBLint", | ||
"run": "qlot exec ros install cxxxr/sblint", | ||
"shell": "bash" | ||
}, | ||
{ | ||
"name": "Run Linter", | ||
"run": "qlot exec sblint cl-info.asd", | ||
"shell": "bash" | ||
} | ||
] | ||
}, | ||
"run-tests": { | ||
"strategy": { | ||
"fail-fast": false, | ||
"matrix": { | ||
"os": [ | ||
"ubuntu-latest", | ||
"macos-latest" | ||
], | ||
"quicklisp": [ | ||
"quicklisp", | ||
"ultralisp" | ||
], | ||
"lisp": [ | ||
"sbcl-bin", | ||
"ccl-bin", | ||
"allegro", | ||
"ecl", | ||
"allegro", | ||
"clisp", | ||
"cmucl" | ||
], | ||
"exclude": [ | ||
{ | ||
"os": "macos-latest", | ||
"lisp": "allegro" | ||
}, | ||
{ | ||
"os": "macos-latest", | ||
"quicklisp": "ultralisp", | ||
"lisp": "clisp" | ||
}, | ||
{ | ||
"os": "macos-latest", | ||
"lisp": "cmucl" | ||
}, | ||
{ | ||
"os": "ubuntu-latest", | ||
"lisp": "clisp" | ||
}, | ||
{ | ||
"os": "ubuntu-latest", | ||
"lisp": "allegro" | ||
}, | ||
{ | ||
"os": "ubuntu-latest", | ||
"lisp": "cmucl" | ||
} | ||
] | ||
} | ||
}, | ||
"runs-on": "${{ matrix.os }}", | ||
"env": { | ||
"OS": "${{ matrix.os }}", | ||
"QUICKLISP_DIST": "${{ matrix.quicklisp }}", | ||
"LISP": "${{ matrix.lisp }}" | ||
}, | ||
"steps": [ | ||
{ | ||
"name": "Checkout Code", | ||
"uses": "actions/checkout@v1" | ||
}, | ||
{ | ||
"name": "Grant All Perms to Make Cache Restoring Possible", | ||
"run": "sudo mkdir -p /usr/local/etc/roswell\n sudo chown \"${USER}\" /usr/local/etc/roswell\n # Here the ros binary will be restored:\n sudo chown \"${USER}\" /usr/local/bin", | ||
"shell": "bash" | ||
}, | ||
{ | ||
"name": "Get Current Month", | ||
"id": "current-month", | ||
"run": "echo \"::set-output name=value::$(date -u \"+%Y-%m\")\"", | ||
"shell": "bash" | ||
}, | ||
{ | ||
"name": "Cache Roswell Setup", | ||
"id": "cache", | ||
"uses": "actions/cache@v2", | ||
"with": { | ||
"path": "qlfile\n qlfile.lock\n /usr/local/bin/ros\n ~/.cache/common-lisp/\n ~/.roswell\n /usr/local/etc/roswell\n .qlot", | ||
"key": "${{ steps.current-month.outputs.value }}-${{ env.cache-name }}-${{ matrix.os }}-${{ matrix.quicklisp }}-${{ matrix.lisp }}-${{ hashFiles('qlfile.lock') }}" | ||
} | ||
}, | ||
{ | ||
"name": "Restore Path To Cached Files", | ||
"run": "echo $HOME/.roswell/bin >> $GITHUB_PATH\n echo .qlot/bin >> $GITHUB_PATH", | ||
"shell": "bash", | ||
"if": "steps.cache.outputs.cache-hit == 'true'" | ||
}, | ||
{ | ||
"name": "Setup Common Lisp Environment", | ||
"uses": "40ants/setup-lisp@v1", | ||
"with": { | ||
"asdf-system": "cl-info", | ||
"qlfile-template": "{% ifequal quicklisp_dist \"ultralisp\" %}\ndist ultralisp http://dist.ultralisp.org\n{% endifequal %}\n\ngithub mgl-pax svetlyak40wt/mgl-pax :branch mgl-pax-minimal" | ||
}, | ||
"if": "steps.cache.outputs.cache-hit != 'true'" | ||
}, | ||
{ | ||
"name": "Run Tests", | ||
"uses": "40ants/run-tests@v2", | ||
"with": { | ||
"asdf-system": "cl-info", | ||
"coveralls-token": "\n${{ matrix.lisp == 'sbcl-bin' &&\n matrix.os == 'ubuntu-latest' &&\n matrix.quicklisp == 'ultralisp' &&\n secrets.github_token }}" | ||
} | ||
}, | ||
{ | ||
"name": "Run Command Line Version", | ||
"run": "echo ::group::Help Argument\nqlot exec cl-info --help\necho ::endgroup::\necho ::group::Version Argument\nqlot exec cl-info --version\necho ::endgroup::\necho ::group::Lisp Systems Info\nqlot exec cl-info cl-info defmain\necho ::endgroup::\n", | ||
"shell": "bash" | ||
} | ||
] | ||
} | ||
} | ||
} |
Oops, something went wrong.