Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.1.12 #135

Merged
merged 1,322 commits into from
Jun 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1322 commits
Select commit Hold shift + click to select a range
e4eafe6
doc: document preference for list-initialization
andrewtoth Feb 23, 2024
cd950eb
Fix CI-detected codespell warnings
Feb 23, 2024
a81be43
test: Add option to skip unit tests for the test runner
mzumsande Feb 23, 2024
fae1527
test: Drop `x` modifier in `fsbridge::fopen` call for mingw builds
hebasto Jan 31, 2024
ee9dac8
test: Remove unnecessary sync_blocks in assumeutxo tests
fjahr Feb 19, 2024
e4952f6
doc: Update OpenBSD build docs to 7.4
jessebarton Feb 26, 2024
525b070
crypto: replace CountBits with std::bit_width
theuni Dec 12, 2023
5f6b383
crypto: replace non-standard CLZ builtins with c++20's bit_width
theuni Dec 8, 2023
c866935
test: Add test for loadtxoutset when headers are not synced
fjahr Feb 19, 2024
0f53eeb
build: remove -Wdocumentation conditional
fanquake Jul 17, 2023
e5aacdf
[validation] Isolate merkle root checks
dergoegge Jan 19, 2024
ebddf03
[refactor] Cleanup merkle root checks
dergoegge Feb 22, 2024
0f97593
[validation] Cache merkle root and witness commitment checks
dergoegge Feb 6, 2024
59b4241
Add transaction_identifier::size to allow Span conversion
dergoegge Feb 27, 2024
22b3ee6
[validation] Merkle root malleation should be caught by IsBlockMutated
dergoegge Feb 6, 2024
d12eccc
[net processing] Don't process mutated blocks
dergoegge Jan 19, 2024
0961f5c
[test] Add regression test for #27608
dergoegge Feb 2, 2024
1d4726a
[validation] Introduce IsBlockMutated
dergoegge Jan 19, 2024
bdef8b6
[test] IsBlockMutated unit tests
dergoegge Feb 23, 2024
cc28826
test: Remove Windows-specific code from `system_tests/run_command`
hebasto Feb 27, 2024
fa50a0b
Squashed 'src/crc32c/' changes from 0bac72c455..b60d2b7334
fanquake Feb 27, 2024
fd472f7
serialization: replace char-is-int8_t autoconf detection with c++20 c…
theuni Feb 26, 2024
cc01b49
doc: Fix Broken Links
justindhillon Feb 27, 2024
277e1b4
wallet: Avoid updating `ReserveDestination::nIndex` when `GetReserved…
UdjinM6 Feb 28, 2024
9f1b87e
test: make sure keypool sizes do not change on `getrawchangeaddress`/…
UdjinM6 Feb 28, 2024
5ec7e59
net: store `-whitelist{force}relay` values in `CConnman`
brunoerg Nov 28, 2023
f3bb5d1
docs: add release notes for #27114
brunoerg Oct 19, 2023
9e7935b
Accept "in" and "out" flags to -whitelist to allow whitelisting manua…
luke-jr Jul 7, 2021
427e555
net_processing: Move extra service flag into InitializeNode
luke-jr Jul 7, 2021
1e55c27
net: Move `NetPermissionFlags::Implicit` verification to `AddWhitelis…
luke-jr Jul 7, 2021
61ad1c1
test: add option to speed up tx relay/mempool sync
brunoerg Mar 14, 2023
f611283
test: add coverage for whitelisting manual connections
brunoerg Aug 7, 2023
51775b7
serialization: detect byteswap builtins without autoconf tests
theuni Feb 27, 2024
bfce289
serialization: use internal endian conversion functions
theuni Feb 27, 2024
b1bd405
ci: print python version on win64 native job
m3dwards Feb 28, 2024
6350a25
Preallocate result in `TryParseHex` to avoid resizing
Feb 25, 2024
1037ede
Add benchmark for TryParseHex
Feb 20, 2024
140325d
gui: guard accessing a nullptr 'clientModel'
furszy Feb 28, 2024
c4ea084
test: Fix intermittent failure in rpc_net.py --v2transport
stratospher Feb 29, 2024
e6197bb
tests: Provide more helpful assert_equal errors
ajtowns Feb 20, 2023
1542bee
test: removes unnecessary check from validation_tests
sr-gi Feb 29, 2024
8bb95d9
fuzz: add target for local addresses
brunoerg Feb 26, 2024
cf2dfa7
refactor: gui, simplify boost signals disconnection
furszy Feb 28, 2024
37add3b
test: add -v1transport option and use it in test_runner
mzumsande Feb 23, 2024
b548144
test: ignore --v2transport for older versions instead of asserting
mzumsande Feb 29, 2024
02640b0
ci: add --v2transport to an existing CI job
mzumsande Feb 26, 2024
9a4e467
build: remove confusing and inconsistent disable-asm option
theuni Feb 7, 2024
71a235d
doc: remove references to disable-asm option now that it's gone
theuni Feb 26, 2024
263de46
doc: correct function name in AssumeUTXO design docs
jrakibi Feb 29, 2024
cd3de2b
p2p: Don't consider blocks mutated if they don't connect to known pre…
instagibbs Feb 29, 2024
e281c82
test: fix weight estimates in functional tests
m3dwards Mar 1, 2024
182b03b
test: fix flaky wallet_send functional test
m3dwards Mar 1, 2024
832c5f0
[policy] sibling eviction for v3 transactions
glozow Feb 14, 2024
d3f0699
[unit test] sibling not returned from SingleV3Checks if 1p2c or 3gen
glozow Feb 21, 2024
21fdaa3
[functional test] sibling eviction
glozow Jan 23, 2024
fdf57f8
build: move sha256_sse4 into libbitcoin_crypto_base
fanquake Mar 1, 2024
95e76d4
configure: test for unix domain sockets
pinheadmz Apr 13, 2023
5172bfa
netbase: refactor CreateSock() to accept sa_family_t
pinheadmz May 26, 2023
4c1fdb3
netbase: allow CreateSock() to create UNIX sockets if supported
pinheadmz May 26, 2023
12f7c0f
net: move CreateSock() calls from ConnectNode() to netbase methods
pinheadmz Jul 12, 2023
7086249
netbase: extend Proxy class to wrap UNIX socket as well as TCP
pinheadmz May 26, 2023
1be2504
proxy: rename randomize_credentials to m_randomize_credentials
pinheadmz Jun 5, 2023
d292d97
net: split ConnectToSocket() from ConnectDirectly() for unix sockets
pinheadmz Jul 12, 2023
d3f9b8f
doc: add release notes and help text for unix sockets
pinheadmz Jul 14, 2023
a950f7b
i2p: construct Session with Proxy instead of CService
pinheadmz Jul 13, 2023
c8194b6
test: cover UNIX sockets in feature_proxy.py
pinheadmz May 26, 2023
3ae0715
gui: accomodate unix socket Proxy in updateDefaultProxyNets()
pinheadmz Jul 13, 2023
dc9fc8b
init: allow UNIX socket path for -proxy and -onion
pinheadmz May 26, 2023
5932c42
build, msvc: Do not compile redundant sources
hebasto Mar 1, 2024
ea96ee8
ci: Fix functional tests step for pull requests in Windows GHA job
hebasto Mar 2, 2024
c4e17bc
test: remove file-wide interpreter.cpp ubsan suppression
fanquake Nov 15, 2023
0006c30
doc: update signet faucet link in offline-signing-tutorial.md
spicyzboss Mar 3, 2024
c29f26d
qt: 27.0 translations update
hebasto Mar 4, 2024
d63a314
kernel: update chainTxData for 27.x
fanquake Mar 4, 2024
90a5a15
kernel: update nMinimumChainWork & defaultAssumeValid for 27.x
fanquake Mar 4, 2024
3b2b487
kernel: chainparams updates for 27.x
fanquake Mar 4, 2024
488f9d8
doc: remove rel note fragments
fanquake Mar 4, 2024
ca6b44e
makeseeds: Update PATTERN_AGENT
achow101 Mar 4, 2024
d9ae93a
makeseeds: Check i2p seeds too
achow101 Mar 5, 2024
a240f1b
seeds: Update mainnet seeds
achow101 Mar 5, 2024
8c0a9ec
seeds: Update testnet seeds
achow101 Mar 5, 2024
b63f295
qt, test: Set organization name
hebasto Mar 5, 2024
5580f2c
qt, test: Clean settings after tests
hebasto Mar 5, 2024
45fae81
docs: Fix broken reference to CI setup in test/lint/README.md
naiyoma Mar 5, 2024
751e7d6
Rename CalculateHeadersWork to CalculateClaimedHeadersWork
instagibbs Mar 5, 2024
c44aafb
fuzz: restrict fopencookie usage to Linux & FreeBSD
fanquake Mar 1, 2024
b241bd0
test: exit with code 1 when no fn tests are found
m3dwards Mar 6, 2024
832473f
ci: add print of powershell version to win64 job
m3dwards Mar 6, 2024
82f6311
[fuzz] Apply fuzz env (suppressions, etc.) when fetching harness list
dergoegge Mar 7, 2024
78d617b
build: Add missed definition for `AM_OBJCXXFLAGS`
hebasto Feb 1, 2024
891a7ed
build: ignore deprecated-declaration warnings in objc++ macOS code
fanquake Mar 6, 2024
3eebc7e
test: test_bitcoin: allow -testdatadir=<datadir>
LarryRuane Nov 24, 2022
3496c07
doc: Wrap flags with code in developer-notes.md
spicyzboss Mar 8, 2024
88b3e17
depends: don't use -h with touch on OpenBSD
fanquake Mar 8, 2024
ee9c7e0
build, msvc: Cleanup `bitcoin_config.h.in`
hebasto Mar 8, 2024
6c44cc1
Reserve memory for ToLower/ToUpper conversions
Mar 8, 2024
a209c4e
wallet: default wallet migration, modify inconvenient backup filename
furszy Mar 7, 2024
d3ed39b
ci: Add workaround for Homebrew's python link error
hebasto Mar 10, 2024
ce280ed
[refactor] consolidate valid MempoolAcceptResult processing
glozow Jul 26, 2023
71438ed
[refactor] consolidate invalid MempoolAcceptResult processing
glozow Mar 7, 2024
7fcff5c
scripted-diff: return error(...); ==> error(...); return false;
Jan 11, 2024
a9efc11
refactor: Add missing {} around error() calls
Jan 11, 2024
e2fc4c0
refactor: Make error() return type void
Jan 11, 2024
8dd57ee
scripted-diff: Replace error() with LogError()
Jan 11, 2024
bd0d6f1
refactor: Remove unused error()
Jan 11, 2024
8c7ce1a
test: p2p: support disconnect waiting for `add_outbound_p2p_connection`
theStack Jan 26, 2024
d67af89
test: p2p: check disconnect due to lack of desirable service flags
theStack Jan 19, 2024
54cc802
test: p2p: check limited peers desirability (depending on best block …
theStack Feb 28, 2024
32c3dcf
ci, macos: Use `--break-system-packages` with Homebrew's python
hebasto Mar 10, 2024
ae6860f
index: blockfilter, decouple Write into its own function
furszy Jan 24, 2023
7ba09c1
bench: basic block filter index initial sync
furszy Nov 25, 2023
5d7aba2
index: blockfilter, decouple header lookup into its own function
furszy Jan 30, 2023
db44ab7
lint: Fix lint-whitespace issues
Feb 27, 2024
91664f0
blockstorage: do not flush block to disk if it is already there
pinheadmz Sep 15, 2023
45db4ec
index: decrease ThreadSync cs_main contention
furszy Feb 16, 2023
08b514a
refactor: init, simplify index shutdown code
furszy Nov 28, 2023
8ac0301
index: cache last block filter header
furszy Feb 23, 2024
6ef819f
log: Remove error() reference
fjahr Feb 18, 2024
bc0daf3
guix: use GCC 12.3.0
fanquake Jun 14, 2023
6dd4b3b
ci: use Debian Bookworm (GCC 12) for win64 job
fanquake Aug 29, 2023
afd1204
guix: temporarily disable powerpcle taget
fanquake Feb 27, 2024
394abaf
ci: use Debian Bookworm (GCC 12) for ARM ci job
fanquake Aug 29, 2023
3dd517d
blockstorage: check nPos in ReadRawBlockFromDisk before seeking back
andrewtoth Mar 12, 2024
8d6d358
zmq: read raw block with ReadRawBlockFromDisk
andrewtoth Mar 12, 2024
1aa41ef
test: check more details on zmq raw block response
andrewtoth Mar 12, 2024
478dfe5
rpc: read raw block in getblock and deserialize for verbosity > 0
andrewtoth Mar 12, 2024
f589e9a
rest: read raw block in rest_block and deserialize for json
andrewtoth Mar 12, 2024
36a7167
test: fix intermittent failures with test=addrman
mzumsande Mar 12, 2024
6b65db0
test: simplify test_runner.py
tdb3 Mar 11, 2024
9dbfc25
RPC: Add maxfeerate and maxburnamount args to submitpackage
instagibbs Nov 27, 2023
c27d5ae
refactor: Modernize header sync logs
Mar 13, 2024
18f8851
Avoid divide-by-zero in header sync logs when NodeClock is behind
Mar 13, 2024
1fc13da
lint: Use git --no-pager to print any output in one go
Mar 13, 2024
2794235
netbase: remove unnecessary log message
pinheadmz Mar 13, 2024
8eff3c0
ci: Better tidy errors
Dec 15, 2023
3ea9bf0
depends: drop 1 qt determinism patch
fanquake Mar 13, 2024
fc07e6d
build: Bump g++ minimum supported version to 11
Dec 15, 2023
c895365
guix: bump time-machine to dc4842797bfdc5f9f3f5f725bf189c2b68bd6b5a
fanquake Mar 14, 2024
3f012b1
Remove unused g++-10 workaround
Mar 14, 2024
5339528
ci: Bump `TIDY_LLVM_V`
hebasto Mar 15, 2024
d5e9377
fuzz: actually test garbage >64b in p2p transport test
sipa Mar 17, 2024
cc9b017
ci: Drop `--enable-c++20` option
hebasto Mar 17, 2024
e1bc26a
lint: Clarify lint runner rust dependency
fjahr Mar 2, 2024
c65ec00
lint: Add lint runner build dir to gitignore
fjahr Mar 2, 2024
e925049
lint: Add lint runner build dir and lint pycache to clean task
fjahr Mar 2, 2024
7c84fc0
test: assumeutxo stale block CheckBlockIndex crash test
ryanofsky Feb 2, 2024
877976a
validation: Check GuessVerificationProgress is not called with discon…
ryanofsky Feb 8, 2024
d2cae05
ci: add getchaintxstats ubsan suppressions
ryanofsky Feb 5, 2024
44210fa
doc: Improve comments describing setBlockIndexCandidates checks
ryanofsky Feb 2, 2024
a14a046
assumeutxo: Remove BLOCK_ASSUMED_VALID flag
ryanofsky Feb 5, 2024
7c0157f
test: assumeutxo snapshot block CheckBlockIndex crash test
ryanofsky Feb 2, 2024
3479026
assumeutxo: Get rid of faked nTx and nChainTx values
ryanofsky Feb 2, 2024
dd5b577
assumeutxo test: Add RPC test for fake nTx and nChainTx values
ryanofsky Feb 5, 2024
ea003ac
rpc: "addpeeraddress tried" return error on failure
0xB10C Dec 4, 2023
393aa04
test: remove unused mocktime in test_addpeeraddress
0xB10C Mar 12, 2024
f298aae
test: fix test to ensure hidden RPC is present in detailed help
stratospher Mar 19, 2024
943cae7
ci: Bump msan to llvm-18
Mar 19, 2024
7a00fc5
index: Move last_locator_write_time and logging to end of threadsync …
fjahr Mar 17, 2024
79d1acf
node: Make translations of fatal errors consistent
TheCharlatan Mar 15, 2024
e4e8fdb
node: Use log levels in noui_ThreadSafeMessageBox
TheCharlatan Mar 21, 2024
9396d1d
doc: Rename `contrib/devtools/bitcoin-tidy/README` to `README.md`
hebasto Mar 22, 2024
561b4b5
test: make p2p_handshake robust against timeoffset warnings
stickies-v Mar 22, 2024
b2df2cf
test: check that addrman seeding is successful
0xB10C Mar 12, 2024
0efc01b
addrman: drop /*deterministic=*/ comment
0xB10C Mar 12, 2024
f91c9d7
init: clarify -test error
0xB10C Mar 12, 2024
db4c700
correct '-dbcache' to '-prune'
BenWestgate Mar 25, 2024
abb1274
depends: always set CMAKE_INSTALL_LIBDIR=lib/
fanquake Mar 22, 2024
599489a
depends: always set CMAKE_POSITION_INDEPENDENT_CODE=ON
fanquake Mar 22, 2024
117ad25
scripted-diff: Rename max_sane_feerate to client_maxfeerate
instagibbs Mar 25, 2024
37387b9
use const ref for client_maxfeerate
instagibbs Mar 25, 2024
fe8990e
guix: make cmake-minimal a global requirement
fanquake Mar 22, 2024
9243554
depends: switch to building libqrencode with CMake
fanquake Mar 25, 2024
8bdfd53
test: Refactor subtree exclusion in lint tests
BrandonOdiwuor Feb 26, 2024
7cda840
unit test: check tx4 conflict error message
instagibbs Mar 25, 2024
0f5a830
ImprovesFeerateDiagram: Spelling fix and removal of unused diagram ve…
instagibbs Mar 25, 2024
7d5a2b8
doc: fix comment about non-existing CompareFeeFrac
instagibbs Mar 25, 2024
88e9625
build, macos: Drop unused `osx_volname` target
hebasto Mar 26, 2024
a243fdf
unit test: add coverage showing priority affects diagram check results
instagibbs Mar 25, 2024
f72a23b
fuzz: finer grained ImprovesFeerateDiagram check on error result
instagibbs Mar 25, 2024
ea181a1
s/effected/affected/
instagibbs Mar 25, 2024
11da3d8
unit test: clarify unstated assumption for calc_feerate_diagram_rbf c…
instagibbs Mar 25, 2024
1807171
unit test: add CheckConflictTopology case for not the only child
instagibbs Mar 25, 2024
c741d3e
fuzz: Add more invariant checks for package_rbf
instagibbs Mar 25, 2024
08d9d73
unit test: improve ImprovesFeerateDiagram coverage with one less vb case
instagibbs Mar 25, 2024
0572b0b
remove erroneous CompareFeerateDiagram comment about slope
instagibbs Mar 25, 2024
c7862fd
unit test: make calc_feerate_diagram_rbf less brittle
instagibbs Mar 25, 2024
a506b6f
CalculateFeerateDiagramsForRBF: remove size tie-breaking from chunkin…
instagibbs Mar 25, 2024
8cadc98
CompareFeerateDiagram: short-circuit comparison when detected as inco…
instagibbs Mar 26, 2024
83123c9
CalculateFeerateDiagramsForRBF: update misleading description of old …
instagibbs Mar 26, 2024
65ea8d6
doc: Fix typos
RoboSchmied Mar 21, 2024
48f16d2
doc: fix some typos
crazeteam Mar 25, 2024
cb0ef47
ci: use codespell 2.2.6
fanquake Mar 26, 2024
c1a078e
ci: Print tsan errors to stderr
Mar 26, 2024
70866c5
depends: fix mingw-w64 Qt DEBUG=1 build
fanquake Mar 27, 2024
dd004c8
mempool: Log added for dumping mempool transactions to disk
kevkevinpal Feb 7, 2024
c2ba7dd
log: renamed disk to file so wording was more accurate
kevkevinpal Feb 8, 2024
c423460
test: makes timeout a forced named argument in tests methods that use it
sr-gi Mar 27, 2024
f370c52
depends: qt 5.15.13
fanquake Mar 26, 2024
5c71b3a
test: fix StopIteration exception in p2p_node_network_limited.py
furszy Mar 27, 2024
4772b4a
doc: Override `-g` properly to skip debugging information
hebasto Mar 28, 2024
f51089f
doc: Suggest installing dev packages for debian/ubuntu qt5 build
laanwj Mar 29, 2024
5a08081
ci: Pull in qtbase5-dev instead of seperate low-level libraries
laanwj Mar 29, 2024
744095c
ci: Bump clang+llvm in i686_multiprocess task
Mar 29, 2024
676132a
ci: Use clang-18 in asan/fuzz/tsan task
Mar 29, 2024
63c6f6b
Fix compilation errors after syncing
janus Apr 13, 2024
540de8a
Fix compilation errors after syncing
janus Apr 13, 2024
95181e3
Fix test/descriptor_tests.cpp file
janus Apr 16, 2024
e8251fc
Fix test/hash_tests.cpp file
janus Apr 16, 2024
e1bc85e
Fix test/key_io_tests.cpp file
janus Apr 16, 2024
ebaa446
Fix test/logging_tests.cpp file
janus Apr 16, 2024
c09fdb0
Fix test/pow_tests.cpp file
janus Apr 17, 2024
1da9fa9
Fix test/txpackage_tests.cpp file
janus Apr 17, 2024
dc0c871
Fix kernel/chainparams.cpp
janus Apr 17, 2024
40441a7
Update kernel/chainparams.cpp file
janus Apr 17, 2024
132f8b9
Fix test/rbf_tests.cpp file
janus Apr 18, 2024
8c30a1f
Fix test/net_peer_connection_tests.cpp file
janus Apr 18, 2024
a354633
Update script/miniscript.h file
janus Apr 18, 2024
d1fed95
Fix test/miniminer_tests.cpp file
janus Apr 18, 2024
0013ab2
Fix test/script_p2sh_tests.cpp file
janus Apr 24, 2024
e124ea8
Update test/functional
wu-emma Apr 29, 2024
0e996b4
Fix indent error
wu-emma Apr 29, 2024
c6ac376
Update debian build
wu-emma Apr 29, 2024
be39754
Fix test/bloom_tests.cpp file
janus Apr 30, 2024
12c13e8
Fix test/validation_tests.cpp file
janus Apr 30, 2024
da3c986
functional/wallet_send.py
janus May 3, 2024
f076cf5
functional/wallet_importdescriptors.py
janus May 4, 2024
f80e2f6
Fix functional/wallet_abandonconflict.py file
janus May 4, 2024
db07eb0
Fix functional/tool_wallet.py file
janus May 4, 2024
a7daad0
Fix functional/rpc_dumptxoutset.py file
janus May 4, 2024
b2aeeb6
Update files
janus May 5, 2024
f7d0d9b
Update some test_framework files
janus May 5, 2024
3733d56
Fix chainparams
wu-emma May 8, 2024
58149e6
Fix SubtractFeeFromOutput
wu-emma May 8, 2024
f07b24f
Update test/functional
wu-emma May 8, 2024
1d4cd08
Remove libBGLconsensus
janus May 10, 2024
6977efe
Update files
janus May 11, 2024
7978b49
WIP: some tests are failing
janus May 11, 2024
5173933
Fix functional/wallet_send.py file
janus May 17, 2024
1aefb46
Fix functional/wallet_labels.py file
janus May 17, 2024
80fa029
Update wallet/rpc files
janus May 17, 2024
6b7e137
Update /rpc files
janus May 17, 2024
f8f26c4
Update key.h file
janus May 17, 2024
24df5fc
Add format space
janus May 17, 2024
70b527b
Fix functional/wallet_basic.py file
janus May 17, 2024
b05615d
Update files
janus May 19, 2024
e836907
Fix deploy/build
wu-emma May 20, 2024
dc8d468
Update version
wu-emma May 20, 2024
42b87eb
Fix functional/wallet_fundrawtransaction.py file
janus May 22, 2024
5737c5f
MSVC related build updates
May 27, 2024
bee7e64
Merge branch 'master' into release-0.1.12
wu-emma Jun 10, 2024
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
  •  
  •  
  •  
73 changes: 28 additions & 45 deletions .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ env:
# - The ./ci/ depedencies (with cirrus-cli) should be installed:
#
# ```
# apt update && apt install screen python3 bash podman-docker curl -y && curl -L -o cirrus "https://github.com/cirruslabs/cirrus-cli/releases/latest/download/cirrus-linux-$(dpkg --print-architecture)" && mv cirrus /usr/local/bin/cirrus && chmod +x /usr/local/bin/cirrus
# apt update && apt install git screen python3 bash podman-docker curl -y && curl -L -o cirrus "https://github.com/cirruslabs/cirrus-cli/releases/latest/download/cirrus-linux-$(dpkg --print-architecture)" && mv cirrus /usr/local/bin/cirrus && chmod +x /usr/local/bin/cirrus
# ```
#
# - There are no strict requirements on the hardware, because having less CPUs
Expand All @@ -44,7 +44,7 @@ env:
# The following specific types should exist, with the following requirements:
# - small: For an x86_64 machine, recommended to have 2 CPUs and 8 GB of memory.
# - medium: For an x86_64 machine, recommended to have 4 CPUs and 16 GB of memory.
# - lunar: For a machine running the Linux kernel shipped with Ubuntu Lunar 23.04. The machine is recommended to have 4 CPUs and 16 GB of memory.
# - noble: For a machine running the Linux kernel shipped with exaclty Ubuntu Noble 24.04. The machine is recommended to have 4 CPUs and 16 GB of memory.
# - arm64: For an aarch64 machine, recommended to have 2 CPUs and 8 GB of memory.

# https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks
Expand All @@ -56,7 +56,7 @@ base_template: &BASE_TEMPLATE
<< : *FILTER_TEMPLATE
merge_base_script:
# Unconditionally install git (used in fingerprint_script).
- bash -c "$PACKAGE_MANAGER_INSTALL git"
- git --version || bash -c "$PACKAGE_MANAGER_INSTALL git"
- if [ "$CIRRUS_PR" = "" ]; then exit 0; fi
- git fetch --depth=1 $CIRRUS_REPO_CLONE_URL "pull/${CIRRUS_PR}/merge"
- git checkout FETCH_HEAD # Use merged changes to detect silent merge conflicts
Expand All @@ -71,37 +71,10 @@ global_task_template: &GLOBAL_TASK_TEMPLATE
<< : *BASE_TEMPLATE
<< : *MAIN_TEMPLATE

task:
name: "x86_64: Linux (Debian stable)"
<< : *LINUX_CONTAINER
matrix:
- env: {WIDEMUL: int64, RECOVERY: yes}
- env: {WIDEMUL: int64, ECDH: yes, SCHNORRSIG: yes, ELLSWIFT: yes}
- env: {WIDEMUL: int128}
- env: {WIDEMUL: int128_struct, ELLSWIFT: yes}
- env: {WIDEMUL: int128, RECOVERY: yes, SCHNORRSIG: yes, ELLSWIFT: yes}
- env: {WIDEMUL: int128, ECDH: yes, SCHNORRSIG: yes}
- env: {WIDEMUL: int128, ASM: x86_64 , ELLSWIFT: yes}
- env: { RECOVERY: yes, SCHNORRSIG: yes}
- env: {CTIMETESTS: no, RECOVERY: yes, ECDH: yes, SCHNORRSIG: yes, CPPFLAGS: -DVERIFY}
- env: {BUILD: distcheck, WITH_VALGRIND: no, CTIMETESTS: no, BENCH: no}
- env: {CPPFLAGS: -DDETERMINISTIC}
- env: {CFLAGS: -O0, CTIMETESTS: no}
- env: {CFLAGS: -O1, RECOVERY: yes, ECDH: yes, SCHNORRSIG: yes, ELLSWIFT: yes}
- env: { ECMULTGENPRECISION: 2, ECMULTWINDOW: 2 }
- env: { ECMULTGENPRECISION: 8, ECMULTWINDOW: 4 }
matrix:
- env:
CC: gcc
- env:
CC: clang
- env:
CC: gcc-snapshot
- env:
CC: clang-snapshot
test_script:
- ./ci/cirrus.sh
<< : *CAT_LOGS
compute_credits_template: &CREDITS_TEMPLATE
# https://cirrus-ci.org/pricing/#compute-credits
# Only use credits for pull requests to the main repo
use_compute_credits: $CIRRUS_REPO_FULL_NAME == 'BGL/BGL' && $CIRRUS_PR != ""

task:
name: 'lint'
Expand All @@ -112,6 +85,9 @@ task:
memory: 1G
# For faster CI feedback, immediately schedule the linters
<< : *CREDITS_TEMPLATE
test_runner_cache:
folder: "/lint_test_runner"
fingerprint_script: echo $CIRRUS_TASK_NAME $(git rev-parse HEAD:test/lint/test_runner)
python_cache:
folder: "/python_build"
fingerprint_script: cat .python-version /etc/os-release
Expand Down Expand Up @@ -139,7 +115,7 @@ task:
FILE_ENV: "./ci/test/00_setup_env_arm.sh"

task:
name: 'Win64, unit tests, no gui tests, no boost::process, no functional tests'
name: 'Win64, unit tests, no gui tests, no functional tests'
<< : *GLOBAL_TASK_TEMPLATE
persistent_worker:
labels:
Expand All @@ -157,13 +133,13 @@ task:
FILE_ENV: "./ci/test/00_setup_env_i686_centos.sh"

task:
name: 'previous releases, qt5 dev package and depends packages, DEBUG'
name: 'previous releases, depends DEBUG'
<< : *GLOBAL_TASK_TEMPLATE
persistent_worker:
labels:
type: small
env:
FILE_ENV: "./ci/test/00_setup_env_native_qt5.sh"
FILE_ENV: "./ci/test/00_setup_env_native_previous_releases.sh"

task:
name: 'TSan, depends, gui'
Expand Down Expand Up @@ -193,7 +169,7 @@ task:
<< : *GLOBAL_TASK_TEMPLATE
persistent_worker:
labels:
type: lunar # Must use the lunar-specific worker (needed for USDT functional tests)
type: noble # Must use this specific worker (needed for USDT functional tests)
env:
FILE_ENV: "./ci/test/00_setup_env_native_asan.sh"

Expand All @@ -216,19 +192,26 @@ task:
FILE_ENV: "./ci/test/00_setup_env_i686_multiprocess.sh"

task:
name: 'no wallet, libBGLkernel'
<< : *GLOBAL_TASK_TEMPLATE
name: "ARM64: Linux (Debian stable)"
persistent_worker:
labels:
type: small
type: arm64
env:
FILE_ENV: "./ci/test/00_setup_env_native_nowallet_libBGLkernel.sh"
ECDH: yes
RECOVERY: yes
SCHNORRSIG: yes
ELLSWIFT: yes
matrix:
# Currently only gcc-snapshot, the other compilers are tested on GHA with QEMU
- env: { CC: 'gcc-snapshot' }
<< : *LINUX_ARM64_CONTAINER
<< : *CAT_LOGS

task:
name: 'macOS-cross 11.0, gui, no tests'
name: 'macOS-cross, gui, no tests'
<< : *GLOBAL_TASK_TEMPLATE
persistent_worker:
labels:
type: small
type: arm64
env:
FILE_ENV: "./ci/test/00_setup_env_mac.sh"
FILE_ENV: "./ci/test/00_setup_env_mac_cross.sh"
33 changes: 33 additions & 0 deletions .github/actions/install-homebrew-valgrind/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: "Install Valgrind"
description: "Install Homebrew's Valgrind package and cache it."
runs:
using: "composite"
steps:
- run: |
brew tap LouisBrunner/valgrind
brew fetch --HEAD LouisBrunner/valgrind/valgrind
echo "CI_HOMEBREW_CELLAR_VALGRIND=$(brew --cellar valgrind)" >> "$GITHUB_ENV"
shell: bash

- run: |
sw_vers > valgrind_fingerprint
brew --version >> valgrind_fingerprint
git -C "$(brew --cache)/valgrind--git" rev-parse HEAD >> valgrind_fingerprint
cat valgrind_fingerprint
shell: bash

- uses: actions/cache@v3
id: cache
with:
path: ${{ env.CI_HOMEBREW_CELLAR_VALGRIND }}
key: ${{ github.job }}-valgrind-${{ hashFiles('valgrind_fingerprint') }}

- if: steps.cache.outputs.cache-hit != 'true'
run: |
brew install --HEAD LouisBrunner/valgrind/valgrind
shell: bash

- if: steps.cache.outputs.cache-hit == 'true'
run: |
brew link valgrind
shell: bash
49 changes: 49 additions & 0 deletions .github/actions/run-in-docker-action/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: 'Run in Docker with environment'
description: 'Run a command in a Docker container, while passing explicitly set environment variables into the container.'
inputs:
dockerfile:
description: 'A Dockerfile that defines an image'
required: true
tag:
description: 'A tag of an image'
required: true
command:
description: 'A command to run in a container'
required: false
default: ./ci/ci.sh
runs:
using: "composite"
steps:
- uses: docker/setup-buildx-action@v3

- uses: docker/build-push-action@v5
id: main_builder
continue-on-error: true
with:
context: .
file: ${{ inputs.dockerfile }}
tags: ${{ inputs.tag }}
load: true
cache-from: type=gha

- uses: docker/build-push-action@v5
id: retry_builder
if: steps.main_builder.outcome == 'failure'
with:
context: .
file: ${{ inputs.dockerfile }}
tags: ${{ inputs.tag }}
load: true
cache-from: type=gha

- # Tell Docker to pass environment variables in `env` into the container.
run: >
docker run \
$(echo '${{ toJSON(env) }}' | jq -r 'keys[] | "--env \(.) "') \
--volume ${{ github.workspace }}:${{ github.workspace }} \
--workdir ${{ github.workspace }} \
${{ inputs.tag }} bash -c "
git config --global --add safe.directory ${{ github.workspace }}
${{ inputs.command }}
"
shell: bash
Loading