Skip to content

Nightly SBCL

Nightly SBCL #239

Workflow file for this run

name: "Nightly SBCL"
on:
workflow_dispatch:
inputs:
url:
description: "git clone URL"
default: "https://git.code.sf.net/p/sbcl/sbcl"
ref:
description: "git reference (refs/heads/mybranch, refs/tags/mytag)"
default: "HEAD"
# I don’t know how to make this work on github actions. It works locally
# but on GA there is some resistance to deep cloning git repositories,
# even at the builtins.fetchGit level. For whatever reason I keep getting
# this:
#
# + nix-build --no-out-link --keep-going --argstr url https://git.code.sf.net/p/sbcl/sbcl --argstr ref HEAD --argstr rev 6a6cb3752f41d23be4303361ccf32749469c974c examples/channels/all-packages/nightly-sbcl.nix
# error: Server does not allow request for unadvertised object 6a6cb3752f41d23be4303361ccf32749469c974c
# warning: could not update mtime for file '/home/runner/.cache/nix/gitv3/0l4dwy1z0vxk09fnvns00hhfn5sq3i9d5056pc68xm348xljcnik/refs/heads/HEAD': No such file or directory
# error:
# … while calling the 'filter' builtin
# at /home/runner/work/test/test/examples/channels/all-packages/default.nix:12:1:
# 11|
# 12| lib.filter lib.isDerivation (lib.flatten (map derivs [ ./check-disabled.nix ./check-enabled.nix ]))
# | ^
# 13|
# … while calling the 'concatMap' builtin
# at /nix/store/dxhd1dkjiddmx9qd4a185b93bj0zz6kv-source/lib/lists.nix:433:10:
# 432| if isList x
# 433| then concatMap (y: flatten y) x
# | ^
# 434| else [x];
# (stack trace truncated; use '--show-trace' to show the full trace)
# error: Cannot find Git revision '6a6cb3752f41d23be4303361ccf32749469c974c' in ref 'HEAD' of repository 'https://git.code.sf.net/p/sbcl/sbcl'! Please make sure that the rev exists on the ref you've specified or add allRefs = true; to fetchGit.
#
# So just disable this entirely for now and always fetch the latest for
# this reference.
#
# rev:
# description: "git revision (must be ancestor of the reference)"
schedule:
# Run all tests on latest nightly lisp releases
- cron: '49 3 * * *'
jobs:
sbcl:
# Arbtirary limit
timeout-minutes: 100
# Let’s not waste github’s macos minutes on this
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
linkableRuntime: [true, false]
coreCompression: [true, false]
gcAndThreads:
- gc: true
threads: true
- gc: false
threads: true
- gc: false
threads: false
defaults:
run:
working-directory: ./examples/channels/all-packages
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@v11
with:
extra-conf: |
substituters = https://cl-nix-lite.cachix.org https://cache.nixos.org/
trusted-public-keys = cl-nix-lite.cachix.org-1:ab6+b0u2vxymMLcZ5DDqPKnxz0WObbMszmC+BDBHpFc= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
- uses: DeterminateSystems/magic-nix-cache-action@main
- name: "Build nightly SBCL"
run: |
cat > lisp.nix <<"EOF"
import ./nightly-sbcl.nix {
${{ inputs.url && format('url = {0};', toJSON(inputs.url)) }}
${{ inputs.ref && format('ref = {0};', toJSON(inputs.ref)) }}
sbclOverride = {
linkableRuntime = ${{matrix.linkableRuntime}};
coreCompression = ${{matrix.coreCompression}};
markRegionGC = ${{matrix.gcAndThreads.gc}};
threadSupport = ${{matrix.gcAndThreads.threads}};
};
}
EOF
nix-build --no-out-link lisp.nix
# Using nix build is a bit kludgy; nix-build with --arg is nicer, but
# nix build has better output for parallel jobs, especially when one of
# them fails.
- name: "Build all packages against nightly SBCL"
run: |
nix build --print-build-logs --no-link --keep-going --impure --expr '
import ./. { lisp = import ./lisp.nix; }
'