src/ipc/libmultiprocess/ci/README.md
All CI is just bash and nix.
.github/workflows/ci.yml – lists the jobs (default, llvm, …).ci/scripts/run.sh – spins up the Nix shell then calls…ci/scripts/ci.sh – …to configure, build, and test.ci/configs/*.sh – defines flags for each job.shell.nix – defines build environment (compilers, tools, libraries).build-*/ – separate build directories (like build-default, build-llvm) will be created for each job.To run jobs locally:
CI_CONFIG=ci/configs/default.bash ci/scripts/run.sh
CI_CONFIG=ci/configs/llvm.bash ci/scripts/run.sh
CI_CONFIG=ci/configs/gnu32.bash ci/scripts/run.sh
CI_CONFIG=ci/configs/sanitize.bash ci/scripts/run.sh
CI_CONFIG=ci/configs/olddeps.bash ci/scripts/run.sh
By default CI jobs will reuse their build directories. CI_CLEAN=1 can be specified to delete them before running instead.
actYou can run either the entire workflow or a single matrix entry locally. On macOS or Linux:
act and either Docker or
Podman.podman volume create libmultiprocess-nix
--matrix flag to run every configuration.act \
--reuse \
-P ubuntu-latest=ghcr.io/catthehacker/ubuntu:act-24.04 \
--container-options "-v libmultiprocess-nix:/nix" \
-j build \
--matrix config:sanitize