Add action workflow to facilitate testing

What:

- On Linux, MacOS, and Windows, installs sbcl-bin and all the _working_
  versions of Roswell, ASDF, and Qlot
- Runs `qlot exec ros` to install a project (to see if it errors out or
  not)

When:

- Each pushed change
- Each pull request action (not our own!)
- Every Saturday night

(Note: when running on the Saturday night, the workflow will try and
install the _latest_ version of Roswell, ASDF, and Qlot)
This commit is contained in:
Matteo Landi 2021-10-26 17:18:30 +02:00
parent 83e8e2c880
commit 0b4f0353dd

63
.github/workflows/tests.yml vendored Normal file
View file

@ -0,0 +1,63 @@
name: tests
on:
push:
pull_request:
schedule:
- cron: "0 0 * * SUN"
jobs:
qlot-exec-ros-install:
# We want to run on external PRs, but not on our own internal PRs as
# they'll be run by the push to the branch.
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.repository
strategy:
fail-fast: false # Let the workflow continue as much as possible
matrix:
include:
- os: ubuntu-latest
shell: bash
lisp: sbcl-bin
- os: macos-latest
shell: bash
lisp: sbcl-bin
- os: windows-latest
shell: msys2 {0}
lisp: sbcl-bin
defaults:
run:
shell: ${{ matrix.shell }}
env:
LISP: ${{ matrix.lisp }}
name: build with ${{ matrix.lisp }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- uses: msys2/setup-msys2@v2
if: runner.os == 'Windows'
with:
# Roswell was added to msys2 just _recently_, so the following makes
# sure packages metadata is up to date. Otherwise...
#
# $ pacman -S mingw-w64-x86_64-roswell
# error: target not found: mingw-w64-x86_64-roswell
# Error: Process completed with exit code 1
update: true
# Msys2 has its own PATH, and the following setting enables standard
# PATH manipulation expressions like the one shown below, to succeed:
#
# $ echo /usr/local/bin >> $GITHUB_PATH
path-type: inherit
- name: Call setup-lisp with default arguments
if: github.event_name != 'schedule'
uses: iamFIREcracker/setup-lisp@windows-work-tests
- name: Call setup-lisp and install latest
if: github.event_name == 'schedule'
uses: iamFIREcracker/setup-lisp@windows-work-tests
with:
roswell-version: latest
# XXX remove this override (i.e. put "latest" back in) after the
# following roswell issue has been solved:
# https://github.com/roswell/roswell/issues/497
asdf-version: 3.3.5.3
qlot-version: latest
- run: qlot exec ros install 40ants/gh-pages