Commit Graph

42263 Commits

Author SHA1 Message Date
will
5538ce4f32 ci: add job to determine runner type
Github-Pull: #32989
Rebased-From: cc1735d777

To remove multiple occurances of the respository name, against which we
compare `${{ github.repository }}` to check if we should use Cirrus
Runners, introduce a helper job which can check a single environment
variable and output this as an input to subsequent jobs.

Forks can maintain a trivial patch of their repo name against the
`REPO_USE_CIRRUS_RUNNERS` variable in ci.yml if they have Cirrus Runners
of their own, which will then enable cache actions and docker build
cache to use Cirrus Cache.

It's not possible to use `${{ env.USE_CIRRUS_RUNNERS }}` in the
`runs-on:` directive as the context is not supported by GitHub.

If it was, this job would no longer be necessary.
2025-09-19 08:39:59 +01:00
will
82cfddbc9a ci: add Cirrus cache host
Github-Pull: #32989
Rebased-From: 020069e6b7

Whilst the action cirruslabs/actions/cache will automatically set this
host, the docker `gha` build cache backend will not be aware of it.

Set the value here, which will later be used in the docker build args to
enable docker build cache on the cirrus cache.
2025-09-19 08:39:56 +01:00
will
30efc95aec ci: have base install run in right dir
Github-Pull: #32989
Rebased-From: 9c2b96e0d0

This sets the build dir at build time so that Apple SDK gets installed
in the correct/expected location for the runtime to find it.

Co-authored-by: Max Edwards <youwontforgetthis@gmail.com>
2025-09-19 08:39:52 +01:00
will
f6ccd895df ci: use buildx in ci
Github-Pull: #32989
Rebased-From: 94a0932547

This rebase also includes part of e87429a2d0
adding `$DOCKER_BUILD_CACHE_ARG \` to the `docker build` command.

Using buildx is required to properly load the correct driver, for use
with registry caching. Neither build, nor BUILDKIT=1 currently do this
properly.

Use of `docker buildx build` is compatible with podman.
2025-09-19 08:39:49 +01:00
will
f8cb31d064 ci: add configure-docker action
Github-Pull: #32989
Rebased-From: fdf64e5532

Another action to reduce boilerplate in the main ci.yml file.

This action will set up a docker builder compatible with caching build
layers to a container registry using the `gha` build driver.

It will then configure the docker build cache args.
2025-09-19 08:39:45 +01:00
will
270191c3c0 ci: add REPO_USE_CIRRUS_RUNNERS
Github-Pull: #32989
Rebased-From: 33ba073df7

If set, Cirrus runners will be used on pushes to, and pull requests
against, this repository.

Forks can set this if they have their own cirrus runners.
2025-09-19 08:39:42 +01:00
will
8d6d70f555 ci: add caching actions
Github-Pull: #32989
Rebased-From: b232b0fa5e

Add "Restore" and "Save" caching actions.

These actions reduce boilerplate in the main ci.yml configuration file.

These actions are implemented so that caches will be saved on `push`
only.

When a pull request is opened it will cache hit on the caches from the
lastest push, or in the case of depends will hit on any matching depends
hash, falling back to partial matches.

Depends caches are hashed using
`$(git ls-tree HEAD depends "ci/test/$FILE_ENV" | sha256sum | cut -d' ' -f1)`
and this hash is passed in as an input to the actions. This means we
direct cache hit in cases where depends would not be re-built, otherwise
falling back to a partial match.

Previous releases cache is hashed similarly to depends, but using the
test/get_previous_releases.py file.

The cirruslabs cache action will fallback transparently to GitHub's
cache in the case that the job is not being run on a Cirrus Runner,
making these compatible with running on forks (on free GH hardware).
2025-09-19 08:39:38 +01:00
will
d8ad667f94 ci: add configure environment action
Github-Pull: #32989
Rebased-From: b8fcc9fcbc
2025-09-19 08:39:21 +01:00
merge-script
6e62b70532 Merge bitcoin/bitcoin#33143: [28.x] Backports
9f1b89a1c7 doc: update release notes for 28.x (fanquake)
2a46f220ca rpc: fix getpeerinfo ping duration unit docs (0xb10c)

Pull request description:

  Backports:
  * #33133

ACKs for top commit:
  willcl-ark:
    ACK 9f1b89a1c7

Tree-SHA512: 98bc82c1925a1a5d163677d13351d6cd5f6df4652b0ea2a400a7c574563cdb7accbba19a059b8612991bd392de1f9b20769fa88e13f8f579db0289c27cf92921
2025-08-15 17:14:19 +01:00
fanquake
9f1b89a1c7 doc: update release notes for 28.x 2025-08-06 11:58:00 +01:00
0xb10c
2a46f220ca rpc: fix getpeerinfo ping duration unit docs
The getpeerinfo docs incorrectly specified the ping durations as
milliseconds. This was incorrectly changed in a3789c700b
(released in v25; master since Sept. 2022). The correct duration unit
is seconds.

Also, remove the documentation of the getpeerinfo RPC response from the
ping RPC since it's incomplete. Better to just reference the getpeerinfo
RPC and it's documenation for this.

Github-Pull: #33133
Rebased-From: 1252eeb997
2025-08-06 11:51:28 +01:00
merge-script
5492e1be3b Merge bitcoin/bitcoin#33076: [28.x] Backports
4d145f9f20 doc: update release notes for 28.x (fanquake)
8782e6ce38 guix: warn SOURCE_DATE_EPOCH set in guix-codesign (will)
c09d82f0dd doc/zmq: fix unix socket path example (Roman Zeyde)
41fa1e0ee5 test: Log KeyboardInterrupt as exception (MarcoFalke)
a828e64b7d test: Do not pass tests on unhandled exceptions (MarcoFalke)

Pull request description:

  Backports:
  * #33001
  * #33070
  * #33073

ACKs for top commit:
  willcl-ark:
    ACK 4d145f9f20
  marcofleon:
    lgtm ACK 4d145f9f20

Tree-SHA512: de269749423b2e112881cfc0126256d46d646ea7ab9f7f5766361d10866ca4d132605deb8a22ba00714a1f3732a792ae69deb062132276bd21d5d616c1130b2b
2025-07-30 15:31:12 +01:00
fanquake
4d145f9f20 doc: update release notes for 28.x 2025-07-29 16:52:54 +01:00
will
8782e6ce38 guix: warn SOURCE_DATE_EPOCH set in guix-codesign
Currently there is a warning for this in guix-build, but we also need
one in guix-codesign, otherwise the codesigned hashes are not
reproducible.

Move common functionality into prelude and call the function in both
guix actions.

Github-Pull: #33073
Rebased-From: 1bed0f734b
2025-07-29 16:51:57 +01:00
Roman Zeyde
c09d82f0dd doc/zmq: fix unix socket path example
Following 75a5c8258e/doc/release-notes/release-notes-28.0.md (L105)

Github-Pull: #33070
Rebased-From: e83699a626
2025-07-28 10:35:35 +01:00
MarcoFalke
41fa1e0ee5 test: Log KeyboardInterrupt as exception
log.exception is more verbose and useful to debug timeouts.

Also, log stderr for CalledProcessError to make debugging easier.

Github-Pull: #33001
Rebased-From: faa3e68411
2025-07-24 15:22:55 +01:00
MarcoFalke
a828e64b7d test: Do not pass tests on unhandled exceptions
This adds a missing catch for BaseException (e.g. SystemExit), which
would otherwise be silently ignored.

Also, remove the redundant other catches, which are just calling
log.exception with a redundant log message.

Github-Pull: #33001
Rebased-From: fa30b34026
2025-07-24 15:22:19 +01:00
merge-script
a6d0159518 Merge bitcoin/bitcoin#32969: [28.x] Backports
a9a71b840d doc: update release notes for 28.x (fanquake)
792ee20318 depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE` (Hennadii Stepanov)

Pull request description:

  Backports:
  * #32943

ACKs for top commit:
  marcofleon:
    ACK a9a71b840d

Tree-SHA512: b04c495a33b280bfe22361fda527541fd0c570ebdd656f925762ceed3a468ab296ab137c0c5dfb0e2e43f4603df81f45ebf878554fc990956d13f482d47f0c79
2025-07-23 16:54:08 +01:00
fanquake
a9a71b840d doc: update release notes for 28.x 2025-07-14 13:37:48 +01:00
Hennadii Stepanov
792ee20318 depends: Force CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE
When using CMake policies 3.14 and below, the `export(PACKAGE)` command
by default populates the user package registry, which is stored outside
the build tree. Setting the `CMAKE_EXPORT_NO_PACKAGE_REGISTRY` variable
disables this side effect.

In CMake 3.15 and later, this behavior is disabled by default, and the
variable has no effect.

Github-Pull: #32943
Rebased-From: 44f3bae300
2025-07-14 13:36:17 +01:00
merge-script
3c56d36bec Merge bitcoin/bitcoin#32811: [28.x] Backports
44b07b2d5a doc: update release notes for 28.x (fanquake)
c77e250a98 guix: warn and abort when SOURCE_DATE_EPOCH is set (will)
d19a8e0c06 doc: taproot became always active in v24.0 (Sjors Provoost)
907772d709 doc: fix transifex 404s (fanquake)
d235d5b77d test: Fix list index out of range error in feature_bip68_sequence.py (zaidmstrr)

Pull request description:

  Backports:
  * #32678
  * #32765
  * #32776
  * #32777

ACKs for top commit:
  hebasto:
    ACK 44b07b2d5a.

Tree-SHA512: 01a3987e222622c16583dae91b1efe4428110ff2d852da13ca34ba3270d40e678dd41d3ec53b89bda260efda706e89f4ee2c1c8bb6cc0d157e5145de001f5526
2025-07-03 17:35:18 +01:00
fanquake
44b07b2d5a doc: update release notes for 28.x 2025-06-27 15:07:44 +01:00
will
c77e250a98 guix: warn and abort when SOURCE_DATE_EPOCH is set
Current behaviour will by-default use SOURCE_DATE_EPOCH from the
environment without warning. This breaks the default reproducibility
from a guix build.

Warn when and exit when this variable is set, and
FORCE_SOURCE_DATE_EPOCH is unset.

Github-Pull: #32678
Rebased-From: 5c4a0f8009
2025-06-27 15:06:28 +01:00
Sjors Provoost
d19a8e0c06 doc: taproot became always active in v24.0
Github-Pull: #32776
Rebased-From: 8ee8a951c2
2025-06-23 12:38:50 +01:00
fanquake
907772d709 doc: fix transifex 404s
Github-Pull: #32777
Rebased-From: 53a996f122
2025-06-23 12:37:11 +01:00
zaidmstrr
d235d5b77d test: Fix list index out of range error in feature_bip68_sequence.py
Github-Pull: #32765
Rebased-From: e285e691b7
2025-06-23 12:34:58 +01:00
merge-script
e44d72b648 Merge bitcoin/bitcoin#32766: [28.x] Finalize 28.2
7135d7536c docs: Release notes for 28.2 (Ava Chow)
90f78c74a0 docs: Regenerate manpages for 28.2 (Ava Chow)
3cd4fdb008 build: Bump to 28.2 (Ava Chow)

Pull request description:

  Version bump for 28.2 final

ACKs for top commit:
  theStack:
    ACK 7135d7536c
  fanquake:
    ACK 7135d7536c

Tree-SHA512: 30ae17b4db16d13fcc99fa47f3927e38b337af19cb10fd64823100794d9d1333292449eedd2011aa59c8adad83c049752f04d143766f170dca24353717405055
v28.2
2025-06-19 10:17:57 +01:00
Ava Chow
7135d7536c docs: Release notes for 28.2 2025-06-18 16:00:44 -07:00
Ava Chow
90f78c74a0 docs: Regenerate manpages for 28.2 2025-06-17 11:07:23 -07:00
Ava Chow
3cd4fdb008 build: Bump to 28.2 2025-06-17 10:56:31 -07:00
merge-script
e5a9e2435f Merge bitcoin/bitcoin#32735: [28.x] More backports
2437d93989 doc: update 28.x release notes (fanquake)
a6aca67214 build: patch cmake min version on freetype (josibake)
9082498589 contrib: Sign all Windows binaries too (Ava Chow)

Pull request description:

  This backports
  * 3656b828dc - Which was missed in #32563, see https://github.com/bitcoin/bitcoin/pull/32563#issuecomment-2960237938.
  * #32693

ACKs for top commit:
  willcl-ark:
    ACK 2437d93989

Tree-SHA512: 3fcc04f22355372fd34581c068c3a02c2b19543f4a2a9058953b6f60debb36a597d74405decbe8451291431aa5bab2060f4545b9f6c1e3b0a8cc3e8aca17fdc5
2025-06-17 13:11:33 +01:00
fanquake
2437d93989 doc: update 28.x release notes 2025-06-13 12:33:24 +01:00
josibake
a6aca67214 build: patch cmake min version on freetype
Patch cmake_minimum_required version for freetype, using the version from
https://gitlab.freedesktop.org/freetype/freetype/-/merge_requests/352/diffs

This fixes a failure when building with CMake 4, where compatibility
with CMake versions < 3.5 has been removed (see https://cmake.org/cmake/help/latest/release/4.0.html#deprecated-and-removed-features)

Github-Pull: #32693
Rebased-From: d7c37906e7
2025-06-13 12:32:38 +01:00
Ava Chow
9082498589 contrib: Sign all Windows binaries too
Github-Pull: #31407
Rebased-From: 3656b828dc
2025-06-13 12:32:38 +01:00
glozow
cb13264169 Merge bitcoin/bitcoin#32684: [28.x] 28.2rc2
fb62393277 doc: update manual pages for 28.2rc2 (fanquake)
c2b2942415 build: bump version to 28.2rc2 (fanquake)
b64faa54c2 doc: update release notes for rc2 (fanquake)
a6cbd33d1a depends: use "mkdir -p" when installing xproto (fanquake)

Pull request description:

  Backports #32568.
  Bumps to `rc2`.
  #32563 & #32639 haved landed since `rc1`.

ACKs for top commit:
  glozow:
    ACK fb62393277
  willcl-ark:
    ACK fb62393277

Tree-SHA512: 4fc210c2baa6876e9efb62150f295c22d9ef8104812c26c64daf20fc82a002dedf96e5593a49df1b84aa60793a7220c90c5ed06d7dfd1eee972ac9963c188a51
v28.2rc2
2025-06-09 11:18:10 -04:00
fanquake
fb62393277 doc: update manual pages for 28.2rc2 2025-06-07 11:59:32 +02:00
fanquake
c2b2942415 build: bump version to 28.2rc2 2025-06-07 11:59:32 +02:00
fanquake
b64faa54c2 doc: update release notes for rc2 2025-06-07 11:59:27 +02:00
fanquake
a6cbd33d1a depends: use "mkdir -p" when installing xproto
It looks like the mkdir detection in xproto is broken on Alpine. Ensure
we always use `mkdir -p`.

Fixes #32494.

Github-Pull: #32568
Rebased-From: df9ebbf659
2025-06-05 15:43:16 +02:00
merge-script
7f1da76269 Merge bitcoin/bitcoin#32563: [28.x] Backport #31407
b1f694fce2 doc: update release-notes.md (fanquake)
52f09633d0 doc: remove note about macOS self-signing (fanquake)
744b1c8581 guix: Apply all codesignatures to Windows binaries (Ava Chow)
812cadefa2 guix: Apply codesignatures to all MacOS binaries (Ava Chow)
c60055c637 contrib: Sign and notarize all MacOS binaries (Ava Chow)
0bd5cb7ac4 guix: Update signapple (Ava Chow)
2b279a2138 build: Include all Windows binaries for codesigning (Ava Chow)
ac2b6083ba build: Include all MacOS binaries for codesigning (Ava Chow)
2c21db657f guix: Rename Windows unsigned binaries to unsigned.zip (Ava Chow)
9f0ee1cc9b guix: Rename MacOS binaries to unsigned.tar.gz (Ava Chow)
00b401c648 guix: Rename unsigned.tar.gz to codesigning.tar.gz (Ava Chow)

Pull request description:

  Backports #31407 + #32003.

ACKs for top commit:
  pinheadmz:
    ACK b1f694fce2

Tree-SHA512: f0ca9427eb367039b4eb0c8740e66c72520413ed43f66a0ffa60d44c36426f8a31f45a1b974b5e6a591b8bf9d9e125140934d9e0ce3a8f5aaaf01c12d7fd62bd
2025-06-05 15:36:19 +02:00
fanquake
b1f694fce2 doc: update release-notes.md 2025-06-02 10:13:31 +01:00
fanquake
52f09633d0 doc: remove note about macOS self-signing
Followup to #31407.

Github-Pull: #32003
Rebased-From: c873ab6f23
2025-06-02 10:13:31 +01:00
Ava Chow
744b1c8581 guix: Apply all codesignatures to Windows binaries
Github-Pull: #31407
Rebased-From: e181bda061
2025-06-02 10:13:30 +01:00
Ava Chow
812cadefa2 guix: Apply codesignatures to all MacOS binaries
Github-Pull: #31407
Rebased-From: aafbd23fd9
2025-06-02 10:13:30 +01:00
Ava Chow
c60055c637 contrib: Sign and notarize all MacOS binaries
Signapple has been updated to sign individual binaries, and notarize app
bundles and binaries. When codesigning, all individual binaries will be
codesigned, and both the app bundle and individual binaries will be
notarized.

Github-Pull: #31407
Rebased-From: 31d325464d
2025-06-02 10:13:30 +01:00
Ava Chow
0bd5cb7ac4 guix: Update signapple
Github-Pull: #31407
Rebased-From: 710d5b5149
2025-06-02 10:13:30 +01:00
Ava Chow
2b279a2138 build: Include all Windows binaries for codesigning
Github-Pull: #31407
Rebased-From: e8b3c44da6
2025-06-02 10:13:30 +01:00
Ava Chow
ac2b6083ba build: Include all MacOS binaries for codesigning
Github-Pull: #31407
Rebased-From: dd4ec840ee
2025-06-02 10:13:25 +01:00
Ava Chow
2c21db657f guix: Rename Windows unsigned binaries to unsigned.zip
As codesigned binaries will be published, the unsigned ones should be
clearly marked as such.

Github-Pull: #31407
Rebased-From: 4e5c9ceb9d
2025-05-30 11:28:25 +01:00
Ava Chow
9f0ee1cc9b guix: Rename MacOS binaries to unsigned.tar.gz
The MacOS binaries are unsigned and therefore also unusable on MacOS.
Indicate as such by naming the tarball "unsigned".

Github-Pull: #31407
Rebased-From: d9d49cd533
2025-05-30 11:28:25 +01:00