Skip to content

Improve and document act support#225

Merged
ryanofsky merged 2 commits intobitcoin-core:masterfrom
Sjors:2025/10/ci-act
Nov 6, 2025
Merged

Improve and document act support#225
ryanofsky merged 2 commits intobitcoin-core:masterfrom
Sjors:2025/10/ci-act

Conversation

@Sjors
Copy link
Member

@Sjors Sjors commented Oct 7, 2025

Facilitate using act with Docker / Podman as an alternative for using nix directly.

I found this very useful for testing the sanitizer job against individual commits in #222. That is, once I finally got it to work...

This disables sandbox and filter-syscalls (but not in the CI environment), which seems fine given that anyone building this code on their own machine has to trust it anyway.

@DrahtBot
Copy link

DrahtBot commented Oct 7, 2025

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Reviews

See the guideline for information on the review process.

Type Reviewers
ACK ryanofsky

If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

@Sjors
Copy link
Member Author

Sjors commented Oct 7, 2025

I'm still testing whether act works against all jobs, but even if only a few like sanitize work that's useful.


It works. Thanks to the cache it runs a lot faster the second time. Output is a bit verbose and there's no summary.

@ryanofsky
Copy link
Collaborator

Nice changes. They seem very useful. It seems like they could be especially useful for testing non-nix jobs like openbsd locally, though not sure if that requires KVM support.

Am a little curious why you needed this to run the sanitize job. Was it a macos issue? I regularly use the steps in the readme to run CI scripts locally on my machine without needing any containers (e.g. CI_CONFIG=ci/configs/sanitize.bash ci/scripts/run.sh) and that has seemed like the most fast and efficient way possible to run them.

@Sjors
Copy link
Member Author

Sjors commented Oct 7, 2025

It's been a while, but last time I tried I couldn't get the nix based CI jobs to run on my Mac.


Still doesn't work, e.g. for master @ a4f9296:

...
-- Configuring done (11.5s)
-- Performing Test CXX_SUPPORTS_EHSC_FLAG - Failed
-- Performing Test C_SUPPORTS_FUNWIND_TABLES_FLAG
-- Performing Test C_SUPPORTS_FUNWIND_TABLES_FLAG - Success
CMake Warning at /tmp/nix-build-libcxx-21.1.1.drv-0/libcxx-src-21.1.1/cmake/Modules/HandleCompilerRT.cmake:8 (message):
  Failed to find compiler-rt builtins library for
Call Stack (most recent call first):
  /tmp/nix-build-libcxx-21.1.1.drv-0/libcxx-src-21.1.1/cmake/Modules/HandleCompilerRT.cmake:102 (cache_compiler_rt_library)
  /tmp/nix-build-libcxx-21.1.1.drv-0/libcxx-src-21.1.1/libcxxabi/src/CMakeLists.txt:127 (find_compiler_rt_library)


CMake Error at /tmp/nix-build-libcxx-21.1.1.drv-0/libcxx-src-21.1.1/libcxxabi/src/CMakeLists.txt:130 (message):
  Cannot find compiler-rt directory on OS X required for LLVM_USE_SANITIZER


-- Configuring incomplete, errors occurred!
error: builder for '/nix/store/m5r6a9hrpgbmqhc8i46m1gvcmlhlxz6i-libcxx-21.1.1.drv' failed with exit code 1;
       last 25 log lines:
       > -- Looking for pthread_once in pthread - found
       > -- Looking for __cxa_thread_atexit_impl in c
       > -- Looking for __cxa_thread_atexit_impl in c - not found
       > -- Performing Test CXX_SUPPORTS_FNO_OMIT_FRAME_POINTER_FLAG
       > -- Performing Test CXX_SUPPORTS_FNO_OMIT_FRAME_POINTER_FLAG - Success
       > -- Performing Test CXX_SUPPORTS_GLINE_TABLES_ONLY_FLAG
       > -- Performing Test CXX_SUPPORTS_GLINE_TABLES_ONLY_FLAG - Success
       > -- Performing Test CXX_SUPPORTS_FSTRICT_ALIASING_FLAG
       > -- Performing Test CXX_SUPPORTS_FSTRICT_ALIASING_FLAG - Success
       > -- Performing Test CXX_SUPPORTS_EHSC_FLAG
       > -- Performing Test CXX_SUPPORTS_EHSC_FLAG - Failed
       > -- Performing Test C_SUPPORTS_FUNWIND_TABLES_FLAG
       > -- Performing Test C_SUPPORTS_FUNWIND_TABLES_FLAG - Success
       > CMake Warning at /tmp/nix-build-libcxx-21.1.1.drv-0/libcxx-src-21.1.1/cmake/Modules/HandleCompilerRT.cmake:8 (message):
       >   Failed to find compiler-rt builtins library for
       > Call Stack (most recent call first):
       >   /tmp/nix-build-libcxx-21.1.1.drv-0/libcxx-src-21.1.1/cmake/Modules/HandleCompilerRT.cmake:102 (cache_compiler_rt_library)
       >   /tmp/nix-build-libcxx-21.1.1.drv-0/libcxx-src-21.1.1/libcxxabi/src/CMakeLists.txt:127 (find_compiler_rt_library)
       >
       >
       > CMake Error at /tmp/nix-build-libcxx-21.1.1.drv-0/libcxx-src-21.1.1/libcxxabi/src/CMakeLists.txt:130 (message):
       >   Cannot find compiler-rt directory on OS X required for LLVM_USE_SANITIZER
       >
       >
       > -- Configuring incomplete, errors occurred!
       For full logs, run:
         nix log /nix/store/m5r6a9hrpgbmqhc8i46m1gvcmlhlxz6i-libcxx-21.1.1.drv
error: build of '/nix/store/m5r6a9hrpgbmqhc8i46m1gvcmlhlxz6i-libcxx-21.1.1.drv', '/nix/store/n8c59j8znsgi8bzw349g7af5x1hzs79p-capnproto-1.2.0.drv' failed

https://gist.github.com/Sjors/bda49b5576a668493575081b3abb11a9

M4 Apple Silicon macOS 26.0.1

@maflcko
Copy link
Contributor

maflcko commented Oct 7, 2025

It should be possible to do so, see https://github.com/maflcko/libmultiprocess/actions/runs/17243581016/job/48927248082 / e8dc12d.

Copy link
Collaborator

@ryanofsky ryanofsky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code review ACK 4e3f8fa. Nice changes, and sorry for not reviewing this earlier. This seems like a useful feature and I plan to use it myself to test githuba ctions changes. Setting up the /nix subvolume in the instructions is also really nice since it should enable builds to run really quickly.

@ryanofsky ryanofsky merged commit c1838be into bitcoin-core:master Nov 6, 2025
8 checks passed
ryanofsky added a commit to ryanofsky/bitcoin that referenced this pull request Jan 21, 2026
…8f7d

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
fanquake added a commit to bitcoin/bitcoin that referenced this pull request Jan 21, 2026
…misc.py timeout

7562e2a Squashed 'src/ipc/libmultiprocess/' changes from a4f92969649..1fc65008f7d (Ryan Ofsky)

Pull request description:

  Includes:

  - bitcoin-core/libmultiprocess#229
  - bitcoin-core/libmultiprocess#223
  - bitcoin-core/libmultiprocess#225
  - bitcoin-core/libmultiprocess#228
  - bitcoin-core/libmultiprocess#230
  - bitcoin-core/libmultiprocess#236
  - bitcoin-core/libmultiprocess#234
  - bitcoin-core/libmultiprocess#196
  - bitcoin-core/libmultiprocess#237

  The last change bitcoin-core/libmultiprocess#237 is expected to fix issue #34187 occasional `rpc_misc.py` test hang. The other changes are just documentation & ci updates.

  The changes can be verified by running `test/lint/git-subtree-check.sh src/ipc/libmultiprocess` as described in [developer notes](https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#subtrees) and [lint instructions](https://github.com/bitcoin/bitcoin/tree/master/test/lint#git-subtree-checksh)

ACKs for top commit:
  sedited:
    ACK 73d0fe6

Tree-SHA512: 82fb2973b8fb5e792dcff1adde0b158ac67cc6a9aeef4465e0bbdfbef88e41d44d9bad53b1d467be47bf594befa02bd8e7829c0a0bc67aaaeb4ca1e09b672a32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants