73 lines
1.8 KiB
YAML
73 lines
1.8 KiB
YAML
|
name: 'CI'
|
||
|
|
||
|
on:
|
||
|
push:
|
||
|
branches:
|
||
|
- 'main'
|
||
|
pull_request:
|
||
|
|
||
|
jobs:
|
||
|
test:
|
||
|
runs-on: docker
|
||
|
|
||
|
strategy:
|
||
|
matrix:
|
||
|
lisp:
|
||
|
- sbcl-bin
|
||
|
|
||
|
steps:
|
||
|
- uses: actions/checkout@v4
|
||
|
|
||
|
- name: Restore cache
|
||
|
id: restore-cache
|
||
|
uses: actions/cache/restore@v4
|
||
|
with:
|
||
|
path: |
|
||
|
~/.quicklisp-client-fix
|
||
|
~/.roswell
|
||
|
/usr/local/bin/ros
|
||
|
/usr/local/etc/roswell/
|
||
|
qlfile
|
||
|
qlfile.lock
|
||
|
.qlot
|
||
|
~/.cache/common-lisp/
|
||
|
key: roswell-${{ runner.os }}-${{ matrix.lisp }}-${{ hashFiles('qlfile', 'qlfile.lock', '*.asd', '.forgejo/workflows/ci.yml') }}
|
||
|
|
||
|
- name: Install Roswell
|
||
|
if: steps.restore-cache.outputs.cache-hit != 'true'
|
||
|
env:
|
||
|
LISP: ${{ matrix.lisp }}
|
||
|
run: |
|
||
|
curl -L https://raw.githubusercontent.com/roswell/roswell/master/scripts/install-for-ci.sh | sh
|
||
|
|
||
|
- name: Install Qlot
|
||
|
if: steps.restore-cache.outputs.cache-hit != 'true'
|
||
|
run: |
|
||
|
ros install fukamachi/qlot
|
||
|
|
||
|
- name: Install dependencies
|
||
|
if: steps.restore-cache.outputs.cache-hit != 'true'
|
||
|
run: |
|
||
|
PATH="~/.roswell/bin:$PATH"
|
||
|
qlot install
|
||
|
qlot exec ros install ningle-fbr
|
||
|
|
||
|
- name: Save cache
|
||
|
id: save-cache
|
||
|
uses: actions/cache/save@v4
|
||
|
if: steps.restore-cache.outputs.cache-hit != 'true'
|
||
|
with:
|
||
|
path: |
|
||
|
~/.quicklisp-client-fix
|
||
|
~/.roswell
|
||
|
/usr/local/bin/ros
|
||
|
/usr/local/etc/roswell/
|
||
|
qlfile
|
||
|
qlfile.lock
|
||
|
.qlot
|
||
|
~/.cache/common-lisp/
|
||
|
key: ${{ steps.restore-cache.outputs.cache-primary-key }}
|
||
|
|
||
|
- name: Run tests
|
||
|
run: .qlot/bin/rove ningle-fbr.asd
|