feat(CI): introduce support for container builds
This adds container-based CI jobs (relying on apptainer
) — as a side effect, we can now also provide "Laptop ESD Container Images" via harbor.
To make this feasible, we have to:
- support installing to configurable prefix folders,
- make sure that
spack spec -y
does not produce junk (call it once more, earlier), - use
package.yaml
settings for the compiler (avoid architectural changes when built on other machines (local laptops, etc.)), - cache base compiler (gcc) build for
ebrainslab
.
It introduces a job, build-spack-env-on-runner
, that performs automatic build testing — for now it builds the container contents freshly (pulling in build cache contents where available). In the longer time frame this can be changed to work on an preexisting ESD image to speed up the testing?
A second job, sync-esd-image
, is introduced that also builds changes (manually triggered), updates the caches and updates the images on harbor.
There are several en-passant "fixes":
- we disabled
py-elephant
's test execution, see #86 (closed) for the reason, - we modified
py-ray
as its build tools (bazel) internally tried to downloadboost
from non-existing URLs → updated URLs.
Edited by Eric Müller