Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2222 commits
Select commit Hold shift + click to select a range
fa8f081
ci: Checkout latest merged pulls
Sep 4, 2025
431a076
index: Fix coinstatsindex overflow issue
fjahr Aug 4, 2025
b2e8b64
index, refactor: Append blocks to coinstatsindex without db read
fjahr Aug 15, 2025
bb8d673
test: Add coinstatsindex compatibility test
fjahr Jun 2, 2025
51df9de
doc: Add release note for 30469
fjahr Jul 14, 2025
37c4fba
index: Check BIP30 blocks when rewinding Coinstatsindex
fjahr Aug 25, 2025
54dc34e
index: Remove unused coinstatsindex recovery code
fjahr Sep 1, 2025
c767974
clang-tidy: Fix critical warnings
fjahr Sep 4, 2025
9c6fa07
Merge bitcoin/bitcoin#33322: Update libmultiprocess subtree to improv…
fanquake Sep 8, 2025
188de70
net: Add interrupt to pcp retry loop
sedited Sep 8, 2025
2d79959
Merge bitcoin/bitcoin#33283: contrib: update fixed seeds
fanquake Sep 8, 2025
905c1a7
doc: move release notes to wiki pre branch off
fanquake Sep 8, 2025
b320f5e
qt: 30.0 translations update
hebasto Sep 5, 2025
0b38cc9
Merge bitcoin/bitcoin#33339: doc: move release notes to wiki pre bran…
fanquake Sep 8, 2025
3eea9fd
Merge bitcoin/bitcoin#33308: doc: fix `LIBRARY_PATH` comment
fanquake Sep 8, 2025
3cceda9
guix: strip binaries in libexec
fanquake Sep 8, 2025
790b440
Fix benchmark CSV output
hebasto Sep 8, 2025
0b0bd74
Merge bitcoin/bitcoin#33312: clang-tidy: Disable `UndefinedBinaryOper…
achow101 Sep 8, 2025
cb825a0
Merge bitcoin/bitcoin#33338: net: Add interrupt to pcp retry loop
achow101 Sep 8, 2025
5e585a0
net: check for empty header before calling FillBlock
Crypt-iQ Sep 3, 2025
8b62647
test: send duplicate blocktxn message in p2p_compactblocks.py
Crypt-iQ Sep 3, 2025
1861030
Merge bitcoin/bitcoin#30469: index: Fix coinstats overflow
achow101 Sep 9, 2025
0ba44d9
Merge bitcoin/bitcoin#33296: net: check for empty header before calli…
achow101 Sep 9, 2025
4776179
Merge bitcoin/bitcoin#33342: guix: strip binaries in libexec
achow101 Sep 9, 2025
9cbd346
Merge bitcoin/bitcoin#33340: Fix benchmark CSV output
fanquake Sep 9, 2025
e749205
Merge bitcoin/bitcoin#33319: ci: reduce runner sizes on various jobs
fanquake Sep 9, 2025
13809b8
Merge bitcoin/bitcoin#33303: ci: Checkout latest merged pulls
fanquake Sep 9, 2025
84cf542
Merge bitcoin/bitcoin#33275: Release: 30.0 translations update
fanquake Sep 9, 2025
0f0e6fe
doc: remove release note fragment
fanquake Sep 9, 2025
042817d
Merge bitcoin/bitcoin#33346: doc: remove release note fragment
fanquake Sep 9, 2025
9f744ff
build: bump CLIENT_VERSION_MAJOR to 30
fanquake Sep 9, 2025
314c42b
Merge bitcoin/bitcoin#33347: build: bump `CLIENT_VERSION_MAJOR` to 30
fanquake Sep 9, 2025
e69aba6
build: bump version to v30.0rc1
fanquake Sep 9, 2025
9b75222
doc: point to v30.0 release notes draft
fanquake Sep 9, 2025
8578991
doc: generate example bitcoin.conf
fanquake Sep 9, 2025
25f699d
contrib: add bitcoin binary to gen-manpages
fanquake Sep 9, 2025
d00b82f
doc: update manual pages for v30.0rc1
fanquake Sep 9, 2025
9be27b8
Merge bitcoin/bitcoin#33349: [30.x] v30.0rc1
fanquake Sep 9, 2025
6b19ede
gui: Avoid pathological QT text/markdown behavior...
davidgumberg Sep 3, 2025
f7eded1
ci: always use tag for LLVM checkout
fanquake Sep 10, 2025
35038b0
trace: Workaround GCC bug compiling with old systemtap
luke-jr Sep 4, 2025
ad6c13e
test: Test wallet 'from me' status change
achow101 Sep 1, 2025
d2be9a2
wallet: Determine IsFromMe by checking for TXOs of inputs
achow101 Aug 28, 2025
b85dc7e
wallet: Throw an error in sendall if the tx size cannot be calculated
achow101 Aug 28, 2025
bbb4e11
test: Add a test for anchor outputs in the wallet
achow101 Aug 28, 2025
75026cd
wallet: Add m_cached_from_me to cache "from me" status
achow101 Feb 20, 2024
0a2afbe
cmake: Fix regression in `secp256k1.cmake`
hebasto Sep 12, 2025
c7faf72
test: Fix CLI_MAX_ARG_SIZE issues
Aug 23, 2025
5dbb1ba
ci: Enable CI_LIMIT_STACK_SIZE=1 in i686_no_ipc task
Aug 23, 2025
3ae5925
test: Prevent disk space warning during node_init_tests
ryanofsky Sep 15, 2025
26208b3
test: Add submitblock test in interface_ipc
sedited Sep 12, 2025
2327b2b
net: Do not apply whitelist permission to onion inbounds
mzumsande Sep 12, 2025
c9f7510
cmake: Install `bitcoin` manpage
hebasto Sep 16, 2025
b7a7227
Merge bitcoin/bitcoin#33356: [30.0] rc2 backports
glozow Sep 17, 2025
33a0d4b
qt: 30.0rc2 translations update
hebasto Sep 21, 2025
52bcf62
Merge bitcoin/bitcoin#33452: Release: 30.0rc2 translations update
fanquake Sep 23, 2025
4b02bc1
test: Avoid interface_ipc.py Duplicate ID errors
ryanofsky Sep 17, 2025
1bc3be1
p2p: Increase tx relay rate
ajtowns Oct 5, 2023
792a75a
build(windows): Remove lingering registry entries and shortcuts upon …
hodlinator Sep 18, 2025
b8fb918
build: bump version to v30.0rc2
fanquake Sep 18, 2025
0a80b1a
doc: update manual pages for v30.0rc2
fanquake Sep 18, 2025
49d4ebc
system: add helper for fetching total system memory
l0rinc Sep 14, 2025
5226a92
coins: warn on oversized -dbcache
l0rinc Sep 7, 2025
ce56548
system: improve handling around GetTotalRAM()
vasild Sep 19, 2025
acf7d53
test: split out `system_ram_tests` to signal when total ram cannot be…
l0rinc Sep 19, 2025
2378bbf
ci: refactor docker action to return provider str
willcl-ark Sep 10, 2025
8c973d6
ci: disable cirrus cache in 32bit arm job
willcl-ark Sep 10, 2025
ecbcef3
doc: remove unrelated `bitcoin-wallet` binary from `libbitcoin_ipc` d…
theStack Sep 22, 2025
7ebdfa2
ci: link against -lstdc++ in native fuzz with msan job
fanquake Aug 1, 2025
72c1f13
Merge bitcoin/bitcoin#33424: [30.0] Final changes + rc2
fanquake Sep 23, 2025
4ec30d5
test: add block 2016 to mock mainnet
Sjors Sep 20, 2025
1e348bc
rpc: fix getblock(header) returns target for tip
Sjors Sep 20, 2025
4570393
miner: fix `addPackageTxs` unsigned integer overflow
ismaelsadeeq Sep 24, 2025
b75afac
doc: rpc: fix case typo in `finalizepsbt` help (final_scriptwitness)
theStack Sep 26, 2025
fce1c60
datacarrier: Undeprecate configuration option
ajtowns Sep 21, 2025
a3a1dcb
fuzz: don't bypass_limits for most mempool harnesses
instagibbs Sep 29, 2025
3485252
Mempool: Do not enforce TRUC checks on reorg
instagibbs Sep 26, 2025
e4f9ec2
test: add more TRUC reorg coverge
instagibbs Sep 26, 2025
1eb5780
depends: static libxcb_cursor
fanquake Sep 19, 2025
f957c21
contrib: fix using macdploy script without translations.
amisha-chhajed Sep 10, 2025
e4b5689
build: bump version to v30.0rc3
fanquake Oct 3, 2025
a2ac6cc
doc: update manual pages for v30.0rc3
fanquake Oct 3, 2025
4e869a6
doc: update example bitcoin conf for 30.0rc3
fanquake Oct 3, 2025
71ee016
qt: 30.0rc3 translations update
hebasto Oct 5, 2025
2869dae
Merge bitcoin/bitcoin#33541: Release: 30.0rc3 translations update
fanquake Oct 6, 2025
d5e0077
Merge bitcoin/bitcoin#33473: [30.x] Backports & rc3
fanquake Oct 6, 2025
0beaf43
Add new qtum files
Oct 7, 2025
d7c89ba
build: bump version to v30.0
fanquake Oct 7, 2025
f725754
doc: update manual pages for v30.0
fanquake Oct 7, 2025
35bb2f1
Rename qtum files
Oct 7, 2025
abcd4c4
Squashed 'src/ipc/libmultiprocess/' changes from 13424cf2ecc1..a4f929…
ryanofsky Oct 7, 2025
ae63cc4
Merge commit 'abcd4c4ff928a7af280ca271f8a939367fc4e09a' into pr/subtr…
ryanofsky Oct 7, 2025
d615eb6
doc: re-import release notes for v30.0
fanquake Oct 7, 2025
be65bf2
Add new qtum libs
Oct 8, 2025
0dec2c0
Port depends and make files
Oct 8, 2025
d0f6d99
Merge bitcoin/bitcoin#33559: [30.x] Finalise v30.0
glozow Oct 9, 2025
972e644
Port evmone make
Oct 10, 2025
befc5d9
Port primitives
Oct 13, 2025
a14e7b9
Merge bitcoin/bitcoin#33519: Update libmultiprocess subtree in 30.x b…
fanquake Oct 16, 2025
c9fa661
ci: Properly include $FILE_ENV in DEPENDS_HASH
achow101 Oct 8, 2025
72d1141
ci: Use native platform for win-cross task
Oct 7, 2025
73ed57a
depends: Use $(package)_file_name when downloading from the fallback
achow101 Oct 8, 2025
c48d3a6
ci: expose all ACTIONS_* vars
willcl-ark Sep 30, 2025
5e38995
test: change log rate limit version gate from 299900 to 290100
Crypt-iQ Oct 13, 2025
f8db6f6
multiprocess: update multiprocess EventLoop construction to use options
theuni Oct 1, 2025
729e4c2
multiprocess: align our logging with libmultiprocess's
theuni Oct 1, 2025
96110f8
[doc] correct topology requirements in submitpackage helptext
glozow Oct 14, 2025
42d4847
init: add exe name to bitcoind, bitcoin-node -version output to be ab…
ryanofsky Aug 20, 2025
cd7937c
test: add tool_bitcoin to test bitcoin wrapper behavior
ryanofsky Aug 20, 2025
23ac752
bitcoin: Make wrapper not require -m
ryanofsky Aug 20, 2025
3afd5a9
miner: fix empty mempool case for waitNext()
Sjors Oct 13, 2025
babcd27
Port address type
Nov 3, 2025
049bf10
qt: add createwallet, createwalletdescriptor, and migratewallet to hi…
waketraindev Oct 10, 2025
8f8c7cf
ci: fix lint docker caching
willcl-ark Oct 30, 2025
34576c4
ci: fix configure docker action inputs
willcl-ark Nov 3, 2025
bae81ae
Port interfaces
Nov 4, 2025
c0d851e
qt: Modernize custom filtering
hebasto Oct 8, 2025
e2dffaa
Port wallet db
Nov 5, 2025
492f95a
Port wallet
Nov 6, 2025
5de331b
Port script
Nov 7, 2025
e2c71c4
doc: Correct `pkgin` command usage on NetBSD
hebasto Nov 8, 2025
a0a2b07
scripted-diff: Remove obsolete comment
hebasto Nov 8, 2025
3e0a581
Port solver
Nov 10, 2025
c7c4fec
Port net processing
Nov 11, 2025
acd9b90
Port tx index iterators
Nov 12, 2025
e56477a
Port block storage
Nov 13, 2025
cd031d8
Port tx mempool
Nov 14, 2025
cc1196d
Port rpc server
Nov 17, 2025
ec8adb0
Port get account info rpcs
Nov 18, 2025
be20218
Port search logs rpcs
Nov 19, 2025
080c668
Port qrc 20 rpcs
Nov 20, 2025
3f01ad8
Port http server
Nov 21, 2025
95e3fae
Port rpc raw transaction
Nov 24, 2025
da67c9a
Port byte code exec
Nov 25, 2025
577ddf6
depends: Add patch for Windows11Style plugin
hebasto Nov 18, 2025
6d4e459
Port validation
Nov 26, 2025
39d53dd
interfaces: add interruptWait method
ismaelsadeeq Oct 22, 2025
3ca31e7
Port init
Nov 27, 2025
6c5aa04
Port bench
Nov 28, 2025
216b784
Port call contract
Dec 1, 2025
b2cb203
doc: update release notes for 30.x
fanquake Oct 13, 2025
72675b8
Merge bitcoin/bitcoin#33609: [30.x] Backports
fanquake Dec 2, 2025
338570d
contrib: more selectively pick files for macOS SDK
fanquake Mar 6, 2025
5408e85
macdeploy: disable compression in macOS gen-sdk script
fanquake Mar 6, 2025
2256f89
contrib: rename gen-sdk to gen-sdk.py
fanquake Nov 18, 2025
16e76bd
Port miner
Dec 2, 2025
d872277
contrib: fix manpage generation
fanquake Dec 2, 2025
04cab90
Port rpc spend
Dec 3, 2025
bf0ab07
Port rpc wallet
Dec 4, 2025
ab58b2c
[wallet] never try to spend from unconfirmed TRUC that already has an…
glozow Oct 2, 2025
187e3b8
[test] wallet send 3 generation TRUC
glozow Oct 2, 2025
18f3ada
Remove unreliable seed from chainparams.cpp, and the associated README
SatsAndSports Oct 28, 2025
b26c93a
doc: update release notes for v30.1rc1
fanquake Dec 3, 2025
b83d4f7
build: bump version to v30.1rc1
fanquake Dec 2, 2025
d59ebac
doc: update manual pages for v30.1rc1
fanquake Dec 3, 2025
b1499dd
Merge bitcoin/bitcoin#33997: [30.x] Backports & 30.1rc1
fanquake Dec 5, 2025
6d3a933
Port rpc output script
Dec 5, 2025
25ada00
Port wallet interfaces
Dec 9, 2025
7b126fc
Port wallet
Dec 10, 2025
7cda2eb
Port tests part 1
Dec 11, 2025
af76e39
Port tests part 2
Dec 12, 2025
4b53e95
Port tests part 3
Dec 15, 2025
2f2f11f
Port tests part 4
Dec 16, 2025
2dd6309
Port tests part 5
Dec 17, 2025
26294d6
doc: update release notes for v30.1
fanquake Dec 17, 2025
5726443
build: bump version to v30.1
fanquake Dec 17, 2025
2a21824
doc: update manual pages for v30.1
fanquake Dec 17, 2025
1ac069f
Port tests part 6
Dec 18, 2025
dd47cae
Merge bitcoin/bitcoin#34092: [30.x] Finalise v30.1
fanquake Dec 18, 2025
cca68c1
Port tests part 7
Dec 19, 2025
812793c
Port contrib and share
Dec 22, 2025
1a80fc9
Port doc
Dec 23, 2025
50f02e7
Port sign block
Dec 24, 2025
8ab3997
Port staker
Dec 25, 2025
5d40d79
Port validation
Dec 26, 2025
055703f
Port kernel chainparams
Dec 29, 2025
6cbd789
Port hardened checkpoints
Dec 30, 2025
7ea855f
build: Update minimum required Boost version
hebasto Dec 18, 2025
b734c40
guix: reduce allowed exported symbols
fanquake Nov 26, 2025
f620dde
fuzz: doc: remove any mention to address_deserialize_v2
brunoerg Dec 17, 2025
99010ea
Port feature block
Dec 31, 2025
ed0774b
doc: update copyright year
fanquake Dec 29, 2025
8769c71
doc: Update OpenBSD Build Guide
hebasto Dec 30, 2025
6983c7d
test: Test SIGTERM handling during waitforblockheight call
ryanofsky Sep 30, 2025
c065bcd
init: Signal m_tip_block_cv on Ctrl-C
ryanofsky Oct 1, 2025
7568bc3
test: Avoid hard time.sleep(1) in feature_init.py
Dec 22, 2025
f22122b
doc: update release notes for v30.x
fanquake Dec 31, 2025
e9f73b8
Merge bitcoin/bitcoin#34192: [30.x] Backports
fanquake Jan 5, 2026
454ac8e
wallet: RestoreWallet failure, erase only what was created
furszy Jan 5, 2026
ac4d095
wallet: fix unnamed wallet migration failure
furszy Dec 27, 2025
8e5c02a
test: add coverage for unnamed wallet migration failure
furszy Dec 27, 2025
ac940ac
test: restorewallet, coverage for existing dirs, unnamed wallet and p…
furszy Jan 5, 2026
bef4b1f
wallet: improve post-migration logging
furszy Dec 27, 2025
bc71372
wallet: migration, fix watch-only and solvables wallets names
furszy Dec 27, 2025
185ca0e
test: coverage for migration failure when last sync is beyond prune h…
furszy Jan 4, 2026
c4082a4
wallettool: do not use fs::remove_all in createfromdump cleanup
achow101 Jan 7, 2026
cc3cdbe
doc: update release notes for v30.2rc1
fanquake Jan 6, 2026
747a863
build: bump version to v30.2rc1
fanquake Jan 6, 2026
483d158
doc: update manual pages for v30.2rc1
fanquake Jan 6, 2026
abb6ae2
Merge bitcoin/bitcoin#34209: [30.x]: Final backports & 30.2rc1
fanquake Jan 7, 2026
9e59047
test: migration, avoid backup name mismatch in default_wallet_failure
furszy Jan 7, 2026
1dae002
wallet: test: Failed migration cleanup
davidgumberg Jan 8, 2026
6d86b32
guix: Fix `osslsigncode` tests
hebasto Jan 8, 2026
6c98d68
doc: update release notes for v30.2
fanquake Jan 8, 2026
ed355b8
build: bump version to v30.2
fanquake Jan 9, 2026
04a996b
doc: update manual pages for v30.2
fanquake Jan 9, 2026
4d7d5f6
Merge bitcoin/bitcoin#34229: [30.2] Backports & Final
fanquake Jan 9, 2026
2283b8a
Fix validation unit tests
Jan 12, 2026
3dc55a5
Fix miner unit tests
Jan 13, 2026
1c6a8a9
Fix rbf unit tests
Jan 14, 2026
150d315
Fix package unit tests
Jan 15, 2026
e6d94bf
Fix bench tests
Jan 16, 2026
18580e6
Merge qt wallet porting from Toni part 1
Jan 20, 2026
edaef0b
Merge qt wallet porting from Toni part 2
Jan 21, 2026
0108116
Merge qt wallet porting from Toni part 3
Jan 22, 2026
527dc34
Merge qt wallet porting from Toni part 4
Jan 23, 2026
ef7a611
Merge qt wallet porting from Toni part 5
Jan 26, 2026
771b304
Merge qt wallet porting from Toni part 6
Jan 27, 2026
20a82aa
Merge qt wallet porting from Toni part 7
Jan 28, 2026
ae826c6
Fix warnings for unused code and bind to reference
Jan 29, 2026
2147e09
Fix transaction table model crash
Jan 30, 2026
512d394
Merge branch 'bitcoin_30.2' into qtumcore30
Feb 2, 2026
cd3d47f
Fix gui tests
Feb 3, 2026
efac015
Port translations from am to fi
Feb 12, 2026
8b5c0fe
Port translations from fil to lt
Feb 13, 2026
92e9e1c
Port translations from lv to sw
Feb 16, 2026
8fbc17b
Port translations from szl to tw
Feb 17, 2026
a121867
Port ko translations
Feb 18, 2026
0c79225
Port zh_CN translations
Feb 19, 2026
fd15ca3
Fix guix build for x86_64 Linux
Feb 24, 2026
abcfa90
Fix guix build Windows
Feb 27, 2026
c68d643
Fix guix build OSX
Mar 3, 2026
e9d37f0
Fix guix build to exclude libff from Qtum package
Mar 4, 2026
9319a4a
Update generated and remove unused b2
Mar 5, 2026
22a1b10
Fix transaction table model display
Mar 6, 2026
6c53bee
Add porting fixes
Mar 10, 2026
ce9f777
Fix error "object has no attribute" in python tests
Mar 11, 2026
8394b5f
Fix tests errors
Mar 13, 2026
5466d2a
Merge branch 'qtumcore30' into core30
Mar 16, 2026
e9fb679
Merge branch 'master' into core30
Mar 16, 2026
f8a9345
Update minimum protocol version to Pectra
Mar 17, 2026
7bc2aab
Update create new block parameters to use the options
Mar 17, 2026
ad38444
Fix testnet4_miner_tests test
Mar 18, 2026
c462fd4
Add client model variable usage checks
Mar 19, 2026
1e832ca
Update build instructions for OSX
Mar 23, 2026
dc8a645
Update build instructions for Ubuntu and remove protobuf from doc
Mar 25, 2026
cc17f30
Remove unused install_db4.sh and update Boost Process link
Mar 25, 2026
7adb112
Update build instructions for CentOS and set minimum boost version to…
Mar 27, 2026
d7b1744
Update qtum.conf example
Apr 2, 2026
56af3d8
Update the guess verification progress to use the actual target spacing
Apr 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
214 changes: 0 additions & 214 deletions .cirrus.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/good_first_issue.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ body:
id: useful-skills
attributes:
label: Useful Skills
description: For example, “`std::thread`”, “Qt5 GUI and async GUI design” or “basic understanding of Bitcoin mining and the Bitcoin Core RPC interface”.
description: For example, “`std::thread`”, “Qt6 GUI and async GUI design” or “basic understanding of Bitcoin mining and the Bitcoin Core RPC interface”.
value: |
* Compiling Bitcoin Core from source
* Running the C++ unit tests and the Python functional tests
Expand Down
68 changes: 68 additions & 0 deletions .github/actions/configure-docker/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: 'Configure Docker'
description: 'Set up Docker build driver and configure build cache args'
inputs:
cache-provider:
description: 'gha or cirrus cache provider'
required: true
runs:
using: 'composite'
steps:
- name: Check inputs
shell: bash
run: |
# We expect only gha or cirrus as inputs to cache-provider
case "${{ inputs.cache-provider }}" in
gha|cirrus)
;;
*)
echo "::warning title=Unknown input to configure docker action::Provided value was ${{ inputs.cache-provider }}"
;;
esac

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
# Use host network to allow access to cirrus gha cache running on the host
driver-opts: |
network=host

# This is required to allow buildkit to access the actions cache
- name: Expose actions cache variables
uses: actions/github-script@v6
with:
script: |
Object.keys(process.env).forEach(function (key) {
if (key.startsWith('ACTIONS_')) {
core.info(`Exporting ${key}`);
core.exportVariable(key, process.env[key]);
}
});

- name: Construct docker build cache args
shell: bash
run: |
# Configure docker build cache backend
#
# On forks the gha cache will work but will use Github's cache backend.
# Docker will check for variables $ACTIONS_CACHE_URL, $ACTIONS_RESULTS_URL and $ACTIONS_RUNTIME_TOKEN
# which are set automatically when running on GitHub infra: https://docs.docker.com/build/cache/backends/gha/#synopsis

# Use cirrus cache host
if [[ ${{ inputs.cache-provider }} == 'cirrus' ]]; then
url_args="url=${CIRRUS_CACHE_HOST},url_v2=${CIRRUS_CACHE_HOST}"
else
url_args=""
fi

# Always optimistically --cache‑from in case a cache blob exists
args=(--cache-from "type=gha${url_args:+,${url_args}},scope=${CONTAINER_NAME}")

# If this is a push to the default branch, also add --cache‑to to save the cache
if [[ ${{ github.event_name }} == "push" && ${{ github.ref_name }} == ${{ github.event.repository.default_branch }} ]]; then
args+=(--cache-to "type=gha${url_args:+,${url_args}},mode=max,ignore-error=true,scope=${CONTAINER_NAME}")
fi

# Always `--load` into docker images (needed when using the `docker-container` build driver).
args+=(--load)

echo "DOCKER_BUILD_CACHE_ARG=${args[*]}" >> $GITHUB_ENV
27 changes: 27 additions & 0 deletions .github/actions/configure-environment/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: 'Configure environment'
description: 'Configure CI, cache and container name environment variables'
runs:
using: 'composite'
steps:
- name: Set CI and cache directories
shell: bash
run: |
echo "BASE_ROOT_DIR=${{ runner.temp }}" >> "$GITHUB_ENV"
echo "BASE_BUILD_DIR=${{ runner.temp }}/build" >> "$GITHUB_ENV"
echo "CCACHE_DIR=${{ runner.temp }}/ccache_dir" >> $GITHUB_ENV
echo "DEPENDS_DIR=${{ runner.temp }}/depends" >> "$GITHUB_ENV"
echo "BASE_CACHE=${{ runner.temp }}/depends/built" >> $GITHUB_ENV
echo "SOURCES_PATH=${{ runner.temp }}/depends/sources" >> $GITHUB_ENV
echo "PREVIOUS_RELEASES_DIR=${{ runner.temp }}/previous_releases" >> $GITHUB_ENV

- name: Set cache hashes
shell: bash
run: |
echo "DEPENDS_HASH=$(git ls-tree HEAD depends "$FILE_ENV" | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
echo "PREVIOUS_RELEASES_HASH=$(git ls-tree HEAD test/get_previous_releases.py | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV

- name: Get container name
shell: bash
run: |
source $FILE_ENV
echo "CONTAINER_NAME=$CONTAINER_NAME" >> "$GITHUB_ENV"
47 changes: 47 additions & 0 deletions .github/actions/restore-caches/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: 'Restore Caches'
description: 'Restore ccache, depends sources, and built depends caches'
runs:
using: 'composite'
steps:
- name: Restore Ccache cache
id: ccache-cache
uses: cirruslabs/cache/restore@v4
with:
path: ${{ env.CCACHE_DIR }}
key: ccache-${{ env.CONTAINER_NAME }}-${{ github.run_id }}
restore-keys: |
ccache-${{ env.CONTAINER_NAME }}-

- name: Restore depends sources cache
id: depends-sources
uses: cirruslabs/cache/restore@v4
with:
path: ${{ env.SOURCES_PATH }}
key: depends-sources-${{ env.CONTAINER_NAME }}-${{ env.DEPENDS_HASH }}
restore-keys: |
depends-sources-${{ env.CONTAINER_NAME }}-

- name: Restore built depends cache
id: depends-built
uses: cirruslabs/cache/restore@v4
with:
path: ${{ env.BASE_CACHE }}
key: depends-built-${{ env.CONTAINER_NAME }}-${{ env.DEPENDS_HASH }}
restore-keys: |
depends-built-${{ env.CONTAINER_NAME }}-

- name: Restore previous releases cache
id: previous-releases
uses: cirruslabs/cache/restore@v4
with:
path: ${{ env.PREVIOUS_RELEASES_DIR }}
key: previous-releases-${{ env.CONTAINER_NAME }}-${{ env.PREVIOUS_RELEASES_HASH }}
restore-keys: |
previous-releases-${{ env.CONTAINER_NAME }}-

- name: export cache hits
shell: bash
run: |
echo "depends-sources-cache-hit=${{ steps.depends-sources.outputs.cache-hit }}" >> $GITHUB_ENV
echo "depends-built-cache-hit=${{ steps.depends-built.outputs.cache-hit }}" >> $GITHUB_ENV
echo "previous-releases-cache-hit=${{ steps.previous-releases.outputs.cache-hit }}" >> $GITHUB_ENV
Loading