Skip to content

Commit 52fffa1

Browse files
committed
Squashed 'depend/bitcoin/' changes from 5c5704e730..0690514d4f
0690514d4f Merge bitcoin/bitcoin#33770: init: Require explicit -asmap filename b2f88b53e0 Merge bitcoin/bitcoin#33286: doc: update multisig tutorial to use multipath descriptors 313cdd2bfb Merge bitcoin/bitcoin#33915: test: Retry download in get_previous_releases.py 17072f7005 Merge bitcoin/bitcoin#33912: clang-format: Set PackConstructorInitializers: CurrentLine 6b2d17b132 Merge bitcoin/bitcoin#33888: ci: Re-enable LINT_CI_SANITY_CHECK_COMMIT_SIG ac71df4338 Merge bitcoin/bitcoin#33870: refactor: remove incorrect lifetimebounds 6cdb51c14e Merge bitcoin/bitcoin#33887: doc: Improve CI docs on env and qemu-user-static 29c37651c7 Merge bitcoin/bitcoin#33880: test: Fix race condition in IPC interface block progation test 32368cd3e9 Merge bitcoin/bitcoin#33905: ci: Consistenly only cache on the default branch e55c49f851 Merge bitcoin/bitcoin#33851: depends: update xcb-util packages to latest versions a07bd8415d Merge bitcoin/bitcoin#33824: ci: Enable experimental kernel stuff in most CI tasks via `dev-mode` f541b92cf2 depends: expat 2.7.3 fad06f3bb4 test: retry download in get_previous_releases.py 2ebf4356e6 depends: libxcb 1.17.0 ba7ac870a3 depends: xcb_proto 1.17.0 fad0c76d0a clang-format: Set PackConstructorInitializers: CurrentLine 42d0692f91 depends: libxcb-util-cursor 0.1.6 25b85919ab depends: libxcb 1.15 d129384ca9 depends: libxcb-util-wm 0.4.2 0b857ae9e5 depends: libxcb-util-renderutil 0.3.10 35e50488b2 depends: libxcb-util-keysyms 0.4.1 74b68ad28b depends: libxcb-util-image 0.4.1 5bc0dde85d depends: libxcb-util 0.4.1 8d07292c28 depends: libXau 1.0.12 1af46cff94 Merge bitcoin/bitcoin#33896: clang-format: Set InsertNewlineAtEOF: true 27ac11ea0a Merge bitcoin/bitcoin#33867: kernel: handle null or empty directories in implementation 2578e6fc0f test: Fix race condition in IPC interface block propagation test 288b8c30be doc: Drop (default: none) from -i2psam description 509dc91db1 Merge bitcoin/bitcoin#33026: test, refactor: Embedded ASMap [1/3]: Selected minor preparatory work b126f98194 Merge bitcoin-core/gui#910: Added test coverage for qt gui#901 console history filter 7d7b829c36 Merge bitcoin-core/gui#908: Remove HD seed reference from blank wallet tooltip 53b72372da Merge bitcoin/bitcoin#31734: miniscript: account for all `StringType` variants in `Miniscriptdescriptor::ToString()` a7f9bbe4c5 Merge bitcoin/bitcoin#32821: rpc: Handle -named argument parsing where '=' character is used 55555db055 doc: Add missing --platform=linux to docker build command fa0ce4c148 ci: Re-enable LINT_CI_SANITY_CHECK_COMMIT_SIG faa0973de2 ci: [refactor] Rename CIRRUS_PR env var to LINT_CI_IS_PR fa411f938e ci: Consistenly only cache on the default branch 552eb90071 doc: CI - Describe qemu-user-static usage 2afbbddee5 doc: CI - Clarify how important `env -i` is and why 2444488f6a Merge bitcoin/bitcoin#33894: net: Remove unused `local_socket_bytes` variable in `CConnman::GetAddresses()` fa1bf6818f clang-format: Set InsertNewlineAtEOF: true 115d298a9f Merge bitcoin/bitcoin#33872: init: completely remove `-maxorphantx` option a90f3922ff Merge bitcoin/bitcoin#32419: psbt: clarify PSBT, PSBTInput, PSBTOutput unserialization flows 4d893c0f46 net: Remove unused `local_socket_bytes` variable in `CConnman::GetAddresses()` fa1dacaebe ci: Move lint exec snippet to stand-alone py file ead849c9f1 Merge bitcoin/bitcoin#33886: test: Remove tests violating hardened std::span c03081fdb4 Merge bitcoin/bitcoin#33776: ci: Lint follow-ups fadb4f63cb test: Remove tests violating hardened std::span 6e21558160 Merge bitcoin/bitcoin#33869: refactor: Avoid -W*-whitespace in git archive c8715aca95 Merge bitcoin/bitcoin#33247: build: Remove CMAKE_SKIP_BUILD_RPATH and SKIP_BUILD_RPATH settings ee5de407e3 Merge bitcoin/bitcoin#33537: guix: build `bitcoin-qt` with static libxcb & utils 024a787350 Merge bitcoin/bitcoin#33876: doc: Update NetBSD Build Guide c66e988754 Merge bitcoin/bitcoin#33865: cmake: Specify Windows plugin path in `test_bitcoin-qt` property c29eaeeaf9 doc: Update NetBSD Build Guide 7f318e1dd0 test: Add better coverage for Autofile size() e221b25246 Merge bitcoin/bitcoin#33860: depends: drop Qt patches b7af960eb8 refactor: Add AutoFile::size ec0f75862e refactor: Modernize logging in util/asmap.cpp 606a251e0a tests: add unit test vectors for asmap interpreter 6657bcbdb4 kernel: allow null data_directory 0aebdac95d init: completely remove `-maxorphantx` option 99d012ec80 refactor: return reference instead of pointer f743e6c5dd refactor: add missing LIFETIMEBOUND annotation for parameter fa95353902 ci: Run macos tasks in a git archive, not git checkout 141117f5e8 refactor: remove incorrect LIFETIMEBOUND annotations fae3618fd6 ci: Annotate all check runs with the pull request number faf05d637d ci: Retry lint image building once after failure 96963b888e depends: static libxcb ad06843fab depends: avoid qdbusviewer in Qt build 6848ed56dc depends: apply Qt patches to fix static libxcb use dfde31f2ec Merge bitcoin/bitcoin#33864: scripted-diff: fix leftover references to `policy/fees.h` 5f1b016beb depends: static libxcb-util-image 98a2fbbe70 depends: static libxkbcommon 1412baf772 depends: static libxcb-util-wm a4009dadf4 depends: static libxcb-keysyms bcfb8679b3 depends: static libxcb-render-util faf99ae379 refactor: Avoid -W*-whitespace in git archive 2594d5a189 build: Remove CMAKE_SKIP_BUILD_RPATH and SKIP_BUILD_RPATH settings 310e4979b3 qt: Added test coverage for qt gui#901 console history filter 0dd8d5c237 cmake: Specify Windows plugin path in `test_bitcoin-qt` property b0a3887154 scripted-diff: fix leftover references to `policy/fees.h` 48d4b936e0 Merge bitcoin/bitcoin#33511: init: Fix Ctrl-C shutdown hangs during wait calls 3c3c6adb72 Merge bitcoin/bitcoin#33745: mining: check witness commitment in submitBlock e652b69b8d Merge bitcoin/bitcoin#33003: test: add option to skip large re-org test in feature_block 3789215f73 Merge bitcoin/bitcoin#33724: refactor: Return uint64_t from GetSerializeSize d4e2a45833 Merge bitcoin/bitcoin#33750: doc: document fingerprinting risk when operating node on multiple networks 47618446a0 Merge bitcoin/bitcoin#33853: kernel: Allow null arguments for serialized data 3e9aca6f1b depends: drop qtbase-moc-ignore-gcc-macro.patch qt patch fac4f6de28 ci: Rewrite lint task Bash snippet to Python fa0d37a579 ci: Rewrite Bash to check inputs to Python 0da5a82700 depends: drop unused qt patch fae83611b8 ci: [refactor] Use --preset=dev-mode in mac_native task fadb67b4b4 ci: [refactor] Base nowallet task on --preset=dev-mode 6666980e86 ci: Enable bitcoin-chainstate and test_bitcoin-qt in win64 task d0da953773 Merge bitcoin/bitcoin#32482: build: add `-W*-whitespace` f450761f83 Merge bitcoin/bitcoin#33842: build: Bump g++ minimum supported version to 12 faff7b2312 ci: Enable experimental kernel stuff in i686 task fa1632eecf ci: Enable experimental kernel stuff in mac-cross tasks fad10ff7c9 ci: Enable experimental kernel stuff in armhf task fa9d67c13d ci: Enable experimental kernel stuff in Alpine task fab3fb8302 ci: Enable experimental kernel stuff in s390x task fa7da8a646 ci: Enable experimental kernel stuff in valgrind task fa9c2973d6 ci: Enable experimental kernel stuff in TSan task fad30d4395 ci: Enable experimental kernel stuff in MSan task fa9f29a4a7 doc: Recommend latest Debian stable or Ubuntu LTS fa1711ee0d doc: Add GCC-12 min release notes faa8be75c9 ci: Enable experimental kernel stuff in G++-12 task (previous releases) fabce97b30 test: Remove gccbug_90348 test case fa3854e432 test: Remove unused fs::create_directories test fa9dacdbde util: [refactor] Remove unused create_directories workaround 138726a6f8 Merge bitcoin/bitcoin#33850: depends: drop qtbase_avoid_native_float16 qt patch 1c3d5c8ffd Merge bitcoin/bitcoin#33840: test: [refactor] Use reference over ptr to chainman 40dcbf580d build: add -Wtrailing-whitespace=any a3ac59a431 ci: Enable experimental kernel stuff in ASan task 5b89956eeb kernel: Allow null arguments for serialized data 169f93d2ac depends: drop qtbase_avoid_native_float16 qt patch d7659cd7e6 build: add -Wleading-whitespace=spaces d86650220a cmake: Disable `-Wtrailing-whitespace` warnings for RCC-generated files aabc5ca6ed cmake: Switch from AUTORCC to `qt6_add_resources` 25ae14c339 subprocess: replace tab with space 0c2b9dadd5 scripted-diff: remove whitespace in sha256_sse4.cpp 4da084fbc9 scripted-diff: change whitespace to spaces in univalue e6caf150b3 ci: add moreutils to lint job a7e8067610 Merge bitcoin/bitcoin#33181: guix: build for Linux HOSTS with `-static-libgcc` b354d1ce5c Merge bitcoin/bitcoin#33820: kernel: trim Chain interface fa807f78ae build: Bump g++ minimum supported version to 12 a4e96cae7d Merge bitcoin/bitcoin#33042: refactor: inline constant return values from `dbwrapper` write methods 8c2710b041 Merge bitcoin/bitcoin#32517: rpc: add "ischange: true" to decoded tx outputs in wallet gettransaction response 1fe851a478 Merge bitcoin/bitcoin#32180: p2p: Advance pindexLastCommonBlock early after connecting blocks 5f0303b93f Merge bitcoin/bitcoin#33443: log: reduce excessive "rolling back/forward" messages during block replay f4903dddc9 Merge bitcoin/bitcoin#33433: Bugfix: QA: rpc_bind: Skip nonloopback test if no such address is found 7a4901c902 test, refactor: Fix `-Warray-bounds` warning 06e9458869 Merge bitcoin/bitcoin#32856: Update `minisketch` subtree 66978a1a95 kernel: remove btck_chain_get_tip 4dd7e6dc48 kernel: remove btck_chain_get_genesis faf2759c8c test: [refactor] Use reference over ptr to chainman 490cb056f6 Merge bitcoin/bitcoin#33785: util: Allow `Assert` (et al.) in contexts without __func__ dcd0099a76 Merge bitcoin/bitcoin#33826: scripted-diff: Remove obsolete comment 01adbbcd9c Merge bitcoin/bitcoin#33827: doc: Correct `pkgin` command usage on NetBSD eec21bc7c8 Merge bitcoin/bitcoin#33536: doc: reference fuzz coverage steps in quick-start 035f934e02 Merge bitcoin/bitcoin#33823: ci: Use cmake --preset=dev-mode in test-each-commit task ddd2afac10 Merge bitcoin/bitcoin#33676: interfaces: enable cancelling running `waitNext` calls dee7eec643 doc: mention coverage build in quickstart section 0698c6b494 doc: Correct `pkgin` command usage on NetBSD 36724205fc scripted-diff: Remove obsolete comment ca1ce52a0f Merge bitcoin/bitcoin#33825: refactor: Add missing include in bitcoinkernel_wrapper.h fa1e8d8bad refactor: Add missing include in bitcoinkernel_wrapper.h fa6db67369 ci: [refactor] Extract build_dir constant in ci-test-each-commit-exec.py fa95e6cdc1 ci: Use cmake --preset=dev-mode in test-each-commit task 513a0da2e0 Merge bitcoin/bitcoin#33818: ci: Extend tidy job to cover kernel code 5d0a40d607 ci: Extend tidy job to cover kernel code 93e79181da Merge bitcoin/bitcoin#33786: script: remove dead code in `CountWitnessSigOps` 3c4bec6223 Merge bitcoin/bitcoin#33782: test: remove obsolete `get_{key,multisig}` helpers from wallet_util.py 4b12beedae Merge bitcoin/bitcoin#33793: test: move create_malleated_version() to messages.py for reuse 0b45e6db10 Merge bitcoin/bitcoin#33789: doc: add cmake help option in Windows build docs 2b9c351198 Merge bitcoin/bitcoin#33768: refactor: remove dead branches in `SingletonClusterImpl` fad6efd3be refactor: Use STR_INTERNAL_BUG macro where possible fada379589 doc: Remove unused bugprone-lambda-function-name suppression f06c6e1898 guix: build for Linux HOSTS with -static-libgcc 1bdf4695b0 guix: patch store paths out of libunwind 078a72c35f guix: move static-libc++ into CMAKE_EXE_LINKER_FLAGS flags 2bd155e6ee test: move create_malleated_version() to messages.py for reuse 9577daa3b8 doc: Add cmake help option in Windows build instructions fae1d99651 refactor: Use const reference to std::source_location fa5fbcd615 util: Allow Assert() in contexts without __func__ 24bcad3d4d refactor: remove dead code in `CountWitnessSigOps` ec8516ceb7 test: remove obsolete `get_{key,multisig}` helpers from wallet_util.py 2d23820ee1 refactor: remove dead branches in `SingletonClusterImpl` e346ecae83 Add eclipse, partitioning, and fingerprinting note to i2p.md f6ec3519a3 init: Require explicit -asmap filename 6eaa00fe20 test: clarify submitBlock() mutates the template 862bd43283 mining: ensure witness commitment check in submitBlock 00d1b6ef4b doc: clarify UpdateUncommittedBlockStructures 929f69d0ff qt: Remove HD seed reference from blank wallet tooltip 19a6a3e75e Add eclipse, partitioning, and fingerprinting note in tor.md fa6c0bedd3 refactor: Return uint64_t from GetSerializeSize fad0c8680e refactor: Use uint64_t over size_t for serialized-size values fa4f388fc9 refactor: Use fixed size ints over (un)signed ints for serialized values 060bb55508 rpc: add decoded tx details to gettransaction with extra wallet fields ad1c3bdba5 [move only] move DecodeTxDoc() to a common util file for sharing d633db5416 rpc: add "ischange: true" in wallet gettransaction decoded tx output fa01f38e53 move-only: Move CBlockFileInfo to kernel namespace fa2bbc9e4c refactor: [rpc] Remove cast when reporting serialized size fa364af89b test: Remove outdated comment dcb56fd4cb interfaces: add interruptWait method de7c3587cd doc: Update add checksum instructions in tutorial c235aa468b Update minisketch subtree to latest upstream 4543a3bde2 Squashed 'src/minisketch/' changes from ea8f66b1ea..d1bd01e189 01cc20f330 test: improve coverage for a resolved stalling situation 9af6daf07e test: remove magic number when checking for blocks that have arrived 3069d66dca p2p: During block download, adjust pindexLastCommonBlock better 2a46e94a16 doc: Update multisig-tutorial.md to use multipath descriptors c25a5e670b init: Signal m_tip_block_cv on Ctrl-C f53dbbc505 test: Add functional tests for named argument parsing 694f04e2bd rpc: Handle -named argument parsing where '=' character is used 6a29f79006 test: Test SIGTERM handling during waitforblockheight call 1fc7a81f1f log: reduce excessive messages during block replay 79b4c276e7 Bugfix: QA: rpc_bind: Skip nonloopback test if no such address is found 743abbcbde refactor: inline constant return value of `BlockTreeDB::WriteBatchSync` and `BlockManager::WriteBlockIndexDB` and `BlockTreeDB::WriteFlag` e030240e90 refactor: inline constant return value of `CDBWrapper::Erase` and `BlockTreeDB::WriteReindexing` cdab9480e9 refactor: inline constant return value of `CDBWrapper::Write` d1847cf5b5 refactor: inline constant return value of `TxIndex::DB::WriteTxs` 50b63a5698 refactor: inline constant return value of `CDBWrapper::WriteBatch` 8810642b57 test: add option to skip large re-org test in feature_block d31158d364 psbt: clarify PSBT, PSBTInput, PSBTOutput unserialization flows 28a4fcb03c test: check listdescriptors do not return a mix of hardened derivation marker 975783cb79 descriptor: account for all StringType in MiniscriptDescriptor::ToStringHelper() git-subtree-dir: depend/bitcoin git-subtree-split: 0690514d4f72aac251ee0b876cded9187d42c63e
1 parent b82132c commit 52fffa1

File tree

178 files changed

+2730
-1806
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

178 files changed

+2730
-1806
lines changed

.github/actions/configure-docker/action.yml

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,11 @@ runs:
88
using: 'composite'
99
steps:
1010
- name: Check inputs
11-
shell: bash
11+
shell: python
1212
run: |
1313
# We expect only gha or cirrus as inputs to cache-provider
14-
case "${{ inputs.cache-provider }}" in
15-
gha|cirrus)
16-
;;
17-
*)
18-
echo "::warning title=Unknown input to configure docker action::Provided value was ${{ inputs.cache-provider }}"
19-
;;
20-
esac
14+
if "${{ inputs.cache-provider }}" not in ("gha", "cirrus"):
15+
print("::warning title=Unknown input to configure docker action::Provided value was ${{ inputs.cache-provider }}")
2116
2217
- name: Set up Docker Buildx
2318
uses: docker/setup-buildx-action@v3

.github/ci-lint-exec.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#!/usr/bin/env python3
2+
# Copyright (c) The Bitcoin Core developers
3+
# Distributed under the MIT software license, see the accompanying
4+
# file COPYING or https://opensource.org/license/mit.
5+
6+
import os
7+
import shlex
8+
import subprocess
9+
import sys
10+
import time
11+
12+
13+
def run(cmd, **kwargs):
14+
print("+ " + shlex.join(cmd), flush=True)
15+
kwargs.setdefault("check", True)
16+
try:
17+
return subprocess.run(cmd, **kwargs)
18+
except Exception as e:
19+
sys.exit(e)
20+
21+
22+
def main():
23+
CONTAINER_NAME = os.environ["CONTAINER_NAME"]
24+
25+
build_cmd = [
26+
"docker", "buildx", "build",
27+
f"--tag={CONTAINER_NAME}",
28+
*shlex.split(os.getenv("DOCKER_BUILD_CACHE_ARG", "")),
29+
"--file=./ci/lint_imagefile",
30+
"."
31+
]
32+
33+
if run(build_cmd, check=False).returncode != 0:
34+
print("Retry building image tag after failure")
35+
time.sleep(3)
36+
run(build_cmd)
37+
38+
extra_env = []
39+
if os.environ["GITHUB_EVENT_NAME"] == "pull_request":
40+
extra_env = ["--env", "LINT_CI_IS_PR=1"]
41+
if os.environ["GITHUB_EVENT_NAME"] != "pull_request" and os.environ["GITHUB_REPOSITORY"] == "bitcoin/bitcoin":
42+
extra_env = ["--env", "LINT_CI_SANITY_CHECK_COMMIT_SIG=1"]
43+
44+
run([
45+
"docker",
46+
"run",
47+
"--rm",
48+
*extra_env,
49+
f"--volume={os.getcwd()}:/bitcoin",
50+
CONTAINER_NAME,
51+
])
52+
53+
54+
if __name__ == "__main__":
55+
main()

.github/ci-test-each-commit-exec.py

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,12 @@ def main():
2121
run(["git", "log", "-1"])
2222

2323
num_procs = int(run(["nproc"], stdout=subprocess.PIPE).stdout)
24+
build_dir = "ci_build"
2425

2526
run([
2627
"cmake",
2728
"-B",
28-
"build",
29+
build_dir,
2930
"-Werror=dev",
3031
# Use clang++, because it is a bit faster and uses less memory than g++
3132
"-DCMAKE_C_COMPILER=clang",
@@ -37,28 +38,23 @@ def main():
3738
"-DAPPEND_CFLAGS='-O3 -g2'",
3839
"-DCMAKE_BUILD_TYPE=Debug",
3940
"-DWERROR=ON",
40-
"-DWITH_ZMQ=ON",
41-
"-DBUILD_GUI=ON",
42-
"-DBUILD_BENCH=ON",
43-
"-DBUILD_FUZZ_BINARY=ON",
44-
"-DWITH_USDT=ON",
45-
"-DBUILD_KERNEL_LIB=ON",
46-
"-DBUILD_KERNEL_TEST=ON",
41+
"--preset=dev-mode",
42+
# Tolerate unused member functions in intermediate commits in a pull request
4743
"-DCMAKE_CXX_FLAGS=-Wno-error=unused-member-function",
4844
])
49-
run(["cmake", "--build", "build", "-j", str(num_procs)])
45+
run(["cmake", "--build", build_dir, "-j", str(num_procs)])
5046
run([
5147
"ctest",
5248
"--output-on-failure",
5349
"--stop-on-failure",
5450
"--test-dir",
55-
"build",
51+
build_dir,
5652
"-j",
5753
str(num_procs),
5854
])
5955
run([
6056
sys.executable,
61-
"./build/test/functional/test_runner.py",
57+
f"./{build_dir}/test/functional/test_runner.py",
6258
"-j",
6359
str(num_procs * 2),
6460
"--combinedlogslen=99999999",

.github/workflows/ci.yml

Lines changed: 43 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,12 @@ jobs:
3535
outputs:
3636
provider: ${{ steps.runners.outputs.provider }}
3737
steps:
38-
- name: Annotate with pull request number
38+
- &ANNOTATION_PR_NUMBER
39+
name: Annotate with pull request number
3940
# This annotation is machine-readable and can be used to assign a check
40-
# run to its corresponding pull request. Running in one check run is
41-
# sufficient for each check suite.
41+
# run to its corresponding pull request. Running in all check runs is
42+
# required, because check re-runs discard the annotations of other
43+
# tasks in the test suite.
4244
run: |
4345
if [ "${{ github.event_name }}" = "pull_request" ]; then
4446
echo "::notice title=debug_pull_request_number_str::${{ github.event.number }}"
@@ -63,6 +65,7 @@ jobs:
6365
steps:
6466
- name: Determine fetch depth
6567
run: echo "FETCH_DEPTH=$((${{ github.event.pull_request.commits }} + 2))" >> "$GITHUB_ENV"
68+
- *ANNOTATION_PR_NUMBER
6669
- uses: actions/checkout@v5
6770
with:
6871
ref: ${{ github.event.pull_request.head.sha }}
@@ -131,16 +134,18 @@ jobs:
131134
include:
132135
- job-type: standard
133136
file-env: './ci/test/00_setup_env_mac_native.sh'
134-
job-name: 'macOS native, no depends, sqlite only, gui'
137+
job-name: 'macOS native'
135138
- job-type: fuzz
136139
file-env: './ci/test/00_setup_env_mac_native_fuzz.sh'
137140
job-name: 'macOS native, fuzz'
138141

139142
env:
140143
DANGER_RUN_CI_ON_HOST: 1
141-
BASE_ROOT_DIR: ${{ github.workspace }}
144+
BASE_ROOT_DIR: ${{ github.workspace }}/repo_archive
142145

143146
steps:
147+
- *ANNOTATION_PR_NUMBER
148+
144149
- &CHECKOUT
145150
name: Checkout
146151
uses: actions/checkout@v5
@@ -176,14 +181,22 @@ jobs:
176181
key: ${{ github.job }}-${{ matrix.job-type }}-ccache-${{ github.run_id }}
177182
restore-keys: ${{ github.job }}-${{ matrix.job-type }}-ccache-
178183

184+
- name: Create git archive
185+
run: |
186+
git log -1
187+
git archive --format=tar --prefix=repo_archive/ --output=repo.tar HEAD
188+
tar -xf repo.tar
189+
179190
- name: CI script
180-
run: ./ci/test_run_all.sh
191+
run: |
192+
cd repo_archive
193+
./ci/test_run_all.sh
181194
env:
182195
FILE_ENV: ${{ matrix.file-env }}
183196

184197
- name: Save Ccache cache
185198
uses: actions/cache/save@v4
186-
if: github.event_name != 'pull_request' && steps.ccache-cache.outputs.cache-hit != 'true'
199+
if: github.event_name != 'pull_request' && github.ref_name == github.event.repository.default_branch && steps.ccache-cache.outputs.cache-hit != 'true'
187200
with:
188201
path: ${{ env.CCACHE_DIR }}
189202
# https://github.com/actions/cache/blob/main/tips-and-workarounds.md#update-a-cache
@@ -212,6 +225,8 @@ jobs:
212225
job-name: 'Windows native, fuzz, VS 2022'
213226

214227
steps:
228+
- *ANNOTATION_PR_NUMBER
229+
215230
- *CHECKOUT
216231

217232
- &SET_UP_VS
@@ -261,7 +276,7 @@ jobs:
261276
262277
- name: Save vcpkg binary cache
263278
uses: actions/cache/save@v4
264-
if: github.event_name != 'pull_request' && steps.vcpkg-binary-cache.outputs.cache-hit != 'true' && matrix.job-type == 'standard'
279+
if: github.event_name != 'pull_request' && github.ref_name == github.event.repository.default_branch && steps.vcpkg-binary-cache.outputs.cache-hit != 'true' && matrix.job-type == 'standard'
265280
with:
266281
path: ~/AppData/Local/vcpkg/archives
267282
key: ${{ github.job }}-vcpkg-binary-${{ hashFiles('cmake_version', 'msbuild_version', 'toolset_version', 'vcpkg.json') }}
@@ -295,8 +310,6 @@ jobs:
295310
- name: Run test suite
296311
if: matrix.job-type == 'standard'
297312
working-directory: build
298-
env:
299-
QT_PLUGIN_PATH: '${{ github.workspace }}\build\vcpkg_installed\x64-windows\Qt6\plugins'
300313
run: |
301314
ctest --output-on-failure --stop-on-failure -j $NUMBER_OF_PROCESSORS -C Release
302315
@@ -331,7 +344,7 @@ jobs:
331344
py -3 test/fuzz/test_runner.py --par $NUMBER_OF_PROCESSORS --loglevel DEBUG "${RUNNER_TEMP}/qa-assets/fuzz_corpora"
332345
333346
windows-cross:
334-
name: 'Linux->Windows cross, no tests'
347+
name: 'Windows-cross to x86_64'
335348
needs: runners
336349
runs-on: ${{ needs.runners.outputs.provider == 'cirrus' && 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-sm' || 'ubuntu-24.04' }}
337350
if: ${{ vars.SKIP_BRANCH_PUSH != 'true' || github.event_name == 'pull_request' }}
@@ -341,6 +354,8 @@ jobs:
341354
DANGER_CI_ON_HOST_FOLDERS: 1
342355

343356
steps:
357+
- *ANNOTATION_PR_NUMBER
358+
344359
- *CHECKOUT
345360

346361
- name: Configure environment
@@ -366,6 +381,7 @@ jobs:
366381
with:
367382
name: x86_64-w64-mingw32-executables-${{ github.run_id }}
368383
path: |
384+
${{ env.BASE_BUILD_DIR }}/bin/*.dll
369385
${{ env.BASE_BUILD_DIR }}/bin/*.exe
370386
${{ env.BASE_BUILD_DIR }}/src/secp256k1/bin/*.exe
371387
${{ env.BASE_BUILD_DIR }}/src/univalue/*.exe
@@ -381,6 +397,8 @@ jobs:
381397
TEST_RUNNER_TIMEOUT_FACTOR: 40
382398

383399
steps:
400+
- *ANNOTATION_PR_NUMBER
401+
384402
- *CHECKOUT
385403

386404
- name: Download built executables
@@ -461,14 +479,14 @@ jobs:
461479
fail-fast: false
462480
matrix:
463481
include:
464-
- name: '32 bit ARM, unit tests, no functional tests'
482+
- name: '32 bit ARM'
465483
cirrus-runner: 'ubuntu-24.04-arm' # Cirrus' Arm runners are Apple (with virtual Linux aarch64), which doesn't support 32-bit mode
466484
fallback-runner: 'ubuntu-24.04-arm'
467485
timeout-minutes: 120
468486
file-env: './ci/test/00_setup_env_arm.sh'
469487
provider: 'gha'
470488

471-
- name: 'ASan + LSan + UBSan + integer, no depends, USDT'
489+
- name: 'ASan + LSan + UBSan + integer'
472490
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md' # has to match container in ci/test/00_setup_env_native_asan.sh for tracing tools
473491
fallback-runner: 'ubuntu-24.04'
474492
timeout-minutes: 120
@@ -486,13 +504,13 @@ jobs:
486504
timeout-minutes: 120
487505
file-env: './ci/test/00_setup_env_mac_cross_intel.sh'
488506

489-
- name: 'No wallet, libbitcoinkernel'
507+
- name: 'No wallet'
490508
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-sm'
491509
fallback-runner: 'ubuntu-24.04'
492510
timeout-minutes: 120
493-
file-env: './ci/test/00_setup_env_native_nowallet_libbitcoinkernel.sh'
511+
file-env: './ci/test/00_setup_env_native_nowallet.sh'
494512

495-
- name: 'no IPC, i686, DEBUG'
513+
- name: 'i686, no IPC'
496514
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md'
497515
fallback-runner: 'ubuntu-24.04'
498516
timeout-minutes: 120
@@ -510,13 +528,13 @@ jobs:
510528
timeout-minutes: 240
511529
file-env: './ci/test/00_setup_env_native_fuzz_with_valgrind.sh'
512530

513-
- name: 'previous releases, depends DEBUG'
531+
- name: 'previous releases'
514532
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md'
515533
fallback-runner: 'ubuntu-24.04'
516534
timeout-minutes: 120
517535
file-env: './ci/test/00_setup_env_native_previous_releases.sh'
518536

519-
- name: 'Alpine (musl), depends, gui'
537+
- name: 'Alpine (musl)'
520538
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md'
521539
fallback-runner: 'ubuntu-24.04'
522540
timeout-minutes: 120
@@ -528,7 +546,7 @@ jobs:
528546
timeout-minutes: 120
529547
file-env: './ci/test/00_setup_env_native_tidy.sh'
530548

531-
- name: 'TSan, depends, no gui'
549+
- name: 'TSan'
532550
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md'
533551
fallback-runner: 'ubuntu-24.04'
534552
timeout-minutes: 120
@@ -540,13 +558,15 @@ jobs:
540558
timeout-minutes: 150
541559
file-env: './ci/test/00_setup_env_native_fuzz_with_msan.sh'
542560

543-
- name: 'MSan, depends'
561+
- name: 'MSan'
544562
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-lg'
545563
fallback-runner: 'ubuntu-24.04'
546564
timeout-minutes: 120
547565
file-env: './ci/test/00_setup_env_native_msan.sh'
548566

549567
steps:
568+
- *ANNOTATION_PR_NUMBER
569+
550570
- *CHECKOUT
551571

552572
- name: Configure environment
@@ -587,6 +607,8 @@ jobs:
587607
env:
588608
CONTAINER_NAME: "bitcoin-linter"
589609
steps:
610+
- *ANNOTATION_PR_NUMBER
611+
590612
- name: Checkout
591613
uses: actions/checkout@v5
592614
with:
@@ -599,11 +621,4 @@ jobs:
599621
cache-provider: ${{ needs.runners.outputs.provider }}
600622

601623
- name: CI script
602-
run: |
603-
set -o xtrace
604-
docker buildx build -t "$CONTAINER_NAME" $DOCKER_BUILD_CACHE_ARG --file "./ci/lint_imagefile" .
605-
CIRRUS_PR_FLAG=""
606-
if [ "${{ github.event_name }}" = "pull_request" ]; then
607-
CIRRUS_PR_FLAG="-e CIRRUS_PR=1"
608-
fi
609-
docker run --rm $CIRRUS_PR_FLAG -v "$(pwd)":/bitcoin "$CONTAINER_NAME"
624+
run: python .github/ci-lint-exec.py

0 commit comments

Comments
 (0)