Skip to content

Commit

Permalink
Merge 420bc08 into a1fe891
Browse files Browse the repository at this point in the history
  • Loading branch information
svetlyak40wt committed Feb 28, 2021
2 parents a1fe891 + 420bc08 commit 53699e7
Show file tree
Hide file tree
Showing 3 changed files with 352 additions and 224 deletions.
349 changes: 188 additions & 161 deletions .github/workflows/ci.yml
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"
}
]
}
}
}
Loading

0 comments on commit 53699e7

Please sign in to comment.