mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-31 10:41:08 +00:00
1fc65008f7d Merge bitcoin-core/libmultiprocess#237: Made SpawnProcess() behavior safe post fork() 5205a87cd90 test: check SpawnProcess post-fork safety 69652f0edfa Precompute argv before fork in SpawnProcess 30a8681de62 SpawnProcess: avoid fd leak on close failure d0fc1081d09 Merge bitcoin-core/libmultiprocess#196: ci: Add NetBSD job 7b171f45bfc Merge bitcoin-core/libmultiprocess#234: doc: Fix typos and grammar in documentation and comments 861da39cae9 ci: Add NetBSD job 458745e3940 Fix various typos, spelling mistakes, and grammatical errors in design.md and source code comments. 585decc8561 Merge bitcoin-core/libmultiprocess#236: ci: Install binary package `capnproto` on OpenBSD instead of building it 14e926a3ff3 refactor: extract MakeArgv helper 1ee909393f4 ci: Install binary package `capnproto` on OpenBSD instead of building it 470fc518d4b Merge bitcoin-core/libmultiprocess#230: cmake: add ONLY_CAPNP target_capnp_sources option 2d8886f26c4 Merge bitcoin-core/libmultiprocess#228: Add versions.md and version.h files describing version branches and tags c1838be565d Merge bitcoin-core/libmultiprocess#225: Improve and document act support a173f1704ce Merge bitcoin-core/libmultiprocess#223: ci: Replace nix-shell with equivalent nix develop command 625eaca42fb Merge bitcoin-core/libmultiprocess#229: Design Documentation Update cc234be73a6 Design doc update 81c652687b8 cmake: add ONLY_CAPNP target_capnp_sources option 6e01d2d766e Add versions.md and version.h files describing version branches and tags 4e3f8fa0d2c doc: add instructions for using act 81712ff6bbf ci: disable KVM and sandbox inside act containers 18a2237a8ef ci: Replace nix-shell with equivalent nix develop command git-subtree-dir: src/ipc/libmultiprocess git-subtree-split: 1fc65008f7d64161e84c08cbd93109a23dd6a1e9
1.8 KiB
1.8 KiB
CI quick-reference
All CI is just bash and nix.
- Workflow:
.github/workflows/ci.yml– lists the jobs (default,llvm, …).
- Scripts:
ci/scripts/run.sh– spins up the Nix shell then calls…ci/scripts/ci.sh– …to configure, build, and test.
- Configuration:
ci/configs/*.sh– defines flags for each job.shell.nix– defines build environment (compilers, tools, libraries).
- Build directories:
build-*/– separate build directories (likebuild-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.
Running workflows with act
You can run either the entire workflow or a single matrix entry locally. On macOS or Linux:
- Install
actand either Docker or Podman. - Inside the Podman VM, create a named volume for the Nix store (ext4, case-sensitive) so builds persist across runs. Recreate it any time you want a clean cache:
podman volume create libmultiprocess-nix
- From the repo root, launch the workflow. The example below targets the
sanitize matrix entry; drop the
--matrixflag 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