aboutsummaryrefslogtreecommitdiff
path: root/ci
AgeCommit message (Collapse)Author
2023-06-14ci: Bump macOS cross task to ubuntu:jammyMarcoFalke
2023-06-09ci: Use podman stop over podman killMarcoFalke
This should avoid a race where the kill is not done when spinning up the new container. podman stop waits 10 seconds by default.
2023-06-08ci: Invalidate Cirrus CI docker cacheMarcoFalke
2023-06-05ci: enable AArch64 target in MSAN jobsfanquake
Use Native.
2023-06-05ci: use LLVM 16.0.5 in MSAN jobsfanquake
2023-06-02Merge bitcoin/bitcoin#27737: ci: compile Clang and compiler-rt in msan jobsfanquake
5763b232e6e6a0f72d046f8aa322b39328be135b ci: return to using Ubuntu 22.04 in MSAN jobs (fanquake) d3cbcbf62693ad7394b3f8693b1c08d4271903fa ci: compile clang and compiler-rt in MSAN jobs (fanquake) 796bd1d0d147ac90f921ce3831961f97748d4e1a ci: use LLVM 16.0.4 in MSAN jobs (fanquake) 883bc9f5611648c44956a09795afd924842c1d1d ci: remove extra CC & CXX from MSAN jobs (fanquake) 2d4f4b8f29c015c26cb02b26a517450bb6056ed4 ci: standardize custom libc++ usage in MSAN jobs (fanquake) Pull request description: This reworks the MSAN CIs, to first compile Clang and compiler-rt (using GCC 12), and then, compile an MSAN instrumented libc++ using the just-built Clang 16. This fixes the `native_fuzz_with_msan` job, working around https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1005341, by not using the Debian provided Clang/LLVM. Also included are changes to streamline how we use our "custom libc++", according to upstream: https://releases.llvm.org/16.0.0/projects/libcxx/docs/UsingLibcxx.html#using-a-custom-built-libc, as well as other minor cleanups in the CI configs. An example job is currently running in the qa-assets repo: https://github.com/bitcoin-core/qa-assets/pull/129 (https://cirrus-ci.com/task/4632561431871488). ACKs for top commit: dergoegge: utACK 5763b232e6e6a0f72d046f8aa322b39328be135b Tree-SHA512: 4f2a6e0b796bb1830b8346dd1e55eaa86a79037b8b4f16a336c1e29f4fc460acca2ecba076635459370bcbb4009333cb79d27ef1521c1fb5db7599cd5bdf558c
2023-05-31Merge bitcoin/bitcoin#27778: ci: Enable float-divide-by-zero checkfanquake
fa3ab4520317f48d4700b81dab023c4e639bbd68 ci: Enable float-divide-by-zero check (MarcoFalke) Pull request description: Enable it, because * It is enabled on OSS-Fuzz, so to be able to catch bugs earlier, enable it here as well. * It makes sense to enable, because when a float is divided by zero, it may be a logic bug in our code, so it should be suppressed in the suppressions file. ACKs for top commit: willcl-ark: utACK fa3ab4520317f48d4700b81dab023c4e639bbd68 dergoegge: ACK fa3ab4520317f48d4700b81dab023c4e639bbd68 Tree-SHA512: 2c2c025af4fe3ec267b3cfa38f25495e9da678cf6c529a6438ec923ef09a06ad37fa4503c30cbacc83578ac2856a7f729ef70a24befffd61d10ec075132d1ee0
2023-05-31Merge bitcoin/bitcoin#27777: ci: Prune dangling images on ↵fanquake
RESTART_CI_DOCKER_BEFORE_RUN fa123077bc3f39aa0969d883e2d799a054cd4543 ci: Use podman for persistent workers (MarcoFalke) fa9c65a74cf18e9c75cd3472112d5197532ac2f2 ci: Prune dangling images on RESTART_CI_DOCKER_BEFORE_RUN (MarcoFalke) Pull request description: This should prevent the persistent workers from running out of disk space. Containers are already removed, but not images. This is required since CI images are built and cached. ACKs for top commit: hebasto: ACK fa123077bc3f39aa0969d883e2d799a054cd4543 Tree-SHA512: 07c4faec57d659d1762e4e6d776c882ee48d4bac6ce6d438d56d9ab13277be3e39d6aa38816165a5a3e0938ac5d47674ee2921b6e115a4bb54e3e4910b34c4b6
2023-05-30ci: Enable float-divide-by-zero checkMarcoFalke
2023-05-30ci: Use podman for persistent workersMarcoFalke
2023-05-30ci: Prune dangling images on RESTART_CI_DOCKER_BEFORE_RUNMarcoFalke
2023-05-29ci: return to using Ubuntu 22.04 in MSAN jobsfanquake
We no-longer need to use 23.04, now that we aren't installing clang-16 and friends.
2023-05-29ci: compile clang and compiler-rt in MSAN jobsfanquake
This works around https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1005341.
2023-05-29ci: use LLVM 16.0.4 in MSAN jobsfanquake
2023-05-29ci: remove extra CC & CXX from MSAN jobsfanquake
This is passed through from depends.
2023-05-29ci: standardize custom libc++ usage in MSAN jobsfanquake
Use `-isystem` & `-nostd*` flags, which is the preferred way to use a custom libc++ (ours is libc++ build with MSAN) with Clang, as opposed to our current ad-hoc flags. See: https://releases.llvm.org/16.0.0/projects/libcxx/docs/UsingLibcxx.html#using-a-custom-built-libc for more info.
2023-05-29Merge bitcoin/bitcoin#27507: lint: stop ignoring LIEF importsfanquake
015cc5e588fa25f65f6ea2ed03701def8dfd5444 lint: stop ignoring LIEF imports (fanquake) Pull request description: Type stubs are now available as of 0.13.0. See https://github.com/lief-project/LIEF/issues/650. ACKs for top commit: TheCharlatan: ACK 015cc5e588fa25f65f6ea2ed03701def8dfd5444 Tree-SHA512: ebb754f293c2a61a0ef64c3552f7c700ceb3054b50fd3f1573e4a9e87773ddeba47bd9875f6ab055043012dbc20aeb71e4d76cd3da535c76651dfb1fbfc66e89
2023-05-29Merge bitcoin/bitcoin#27724: build: disable boost multi index safe mode in ↵fanquake
debug mode 59c89447499bd9d6202269879555b8bc37373aa2 build: disable boost multi index safe mode (willcl-ark) Pull request description: Fixes #27586 Disable boost multi index safe mode by default when configuring with --enable-debug. This option can cause transactions to take a long time to be accepted into the mempool under certain conditions; iterator destruction takes O(n) time vs O(1) as they are stored in a singly linked list. See 27586 and the [boost docs](https://www.boost.org/doc/libs/1_58_0/boost/multi_index/detail/safe_mode.hpp) for more information. Re-enable it on the CI builds which previously had it enabled. Re-enable it on the msan fuzz task so that we have fuzz tasks testing with it enabled and disabled in this repo. ACKs for top commit: hebasto: ~ACK 59c89447499bd9d6202269879555b8bc37373aa2~ fanquake: ACK 59c89447499bd9d6202269879555b8bc37373aa2 Tree-SHA512: ed654f63dbebdd02e4414d1f81147d92a4d490dbb5a2e0376858e3129097645f3a2df45191d6b40c410a76e803b0d28796d1a01c1d2fd995b94e8b7eb3949027
2023-05-29Merge bitcoin/bitcoin#27759: Fix `#include`s in `src/wallet`fanquake
1f97572b9c0d339a8497340e7066050aba9d7694 Fix `#include`s in `src/wallet` (Hennadii Stepanov) Pull request description: This PR is a minimum required changes to fix https://github.com/bitcoin/bitcoin/pull/27571#discussion_r1195497290. ACKs for top commit: MarcoFalke: lgtm ACK 1f97572b9c0d339a8497340e7066050aba9d7694 Tree-SHA512: de885210076d23f3394c42ca50e6ae2470c0ae6523399a2fa3ebb7c06383bdacef9c26166fa19747200396bed796c8772165e24416eb30ed8edd024e3394b2fe
2023-05-29lint: stop ignoring LIEF importsfanquake
Type stubs are now available as of 0.13.0. See https://github.com/lief-project/LIEF/issues/650.
2023-05-29ci: Avoid leaking HOME var into CI podMarcoFalke
This will lead to a duplicate install, see https://github.com/bitcoin/bitcoin/pull/27739#issuecomment-1564122573
2023-05-29ci: Remove "default" test envMarcoFalke
It is unclear what the point is of maintaining a "default", the meaning of which is unclear.
2023-05-29ci: Add missing set -e to 01_base_install.shMarcoFalke
Also, set -x for easier debugging. Also, do the same for ci/test/00_setup_env.sh
2023-05-25Fix `#include`s in `src/wallet`Hennadii Stepanov
2023-05-23build: disable boost multi index safe modewillcl-ark
Disable boost multi index safe mode by default when configuring with --enable-debug. This option can cause transactions to take a long time to be accepted into the mempool under certain conditions; iterator destruction takes O(n) time vs O(1) as they are stored in a singly linked list. See 27586 for more information. Re-enable it on the CI builds which previously had it enabled. Re-enable it on the msan fuzz target so that we have fuzz tasks testing with it enabeld and disabled in this repo.
2023-05-22Merge bitcoin/bitcoin#27672: fuzz: Print error message when FUZZ is missingfanquake
fa1b3abc834a90fb1cfbd5ac63deb28f3990c1fb ci: Log qa-assets repo last commit (MarcoFalke) fa22966f3307e22b77ea386e1abb60bf8c606170 fuzz: Print error message when FUZZ is missing (MarcoFalke) Pull request description: Some trivial UX improvements. * Change the exit code for `PRINT_ALL_FUZZ_TARGETS_AND_ABORT` and `WRITE_ALL_FUZZ_TARGETS_AND_ABORT` to `EXIT_SUCCESS` instead of `Aborted (core dumped)`. * Print readable error message when `FUZZ` is missing instead of `Aborted (core dumped)`. * Clarify that a fuzz target needs to be compiled into the executable. ACKs for top commit: dergoegge: ACK fa1b3abc834a90fb1cfbd5ac63deb28f3990c1fb Tree-SHA512: 065ef8920449c64b3516f89a61cb397b505eccf531318c4f3830895d5ff6cd7ae2525cb857320481e3d0ed0b2f8a522cd8f7835e69f021241b6ec297a6102fc8
2023-05-22Merge bitcoin/bitcoin#27699: random: drop syscall wrapper usage for getrandom()fanquake
5228223e1ff2af29e6e77668ce3288005c2adbbc ci: remove MSAN getrandom syscall workaround (fanquake) d5e06919db5e221bfef445c5a40c88de72dc5869 random: switch to using getrandom() directly (fanquake) c2ba3f5b0c7d0eece7d16d1ffc125d8a6a9297af random: add [[maybe_unused]] to GetDevURandom (fanquake) c13c97dbf846cf0e6a5581ac414ef96a215b0dc6 random: getentropy on macOS does not need unistd.h (fanquake) Pull request description: This requires a linux kernel of `3.17`+, which seems entirely reasonable. `3.17` went EOL in 2015, and the last supported `3.x` kernel (`3.16`) went EOL > 4 years ago, in 2020. For reference, the current oldest maintained kernel is `4.14` (released 2017, going EOL Jan 2024). Support for `getrandom()` (and `getentropy()`) was added to glibc `2.25` https://sourceware.org/legacy-ml/libc-alpha/2017-02/msg00079.html: > * The getentropy and getrandom functions, and the <sys/random.h> header file have been added. and we already require `2.27` or later. All that being said, I don't think you would encounter a current day (+~6 months from now) system, running with kernel headers older than 3.17 (released 2014) but also having a glibc of 2.27+ (released 2018)? Removing this (our only) use of `syscall()` also means we can drop a workaround in our MSAN jobs. If this is merged, I'll drop the [same workaround in oss-fuzz](https://github.com/google/oss-fuzz/blob/25946a544856413d31d9cbb3a366a4aef5a8fd60/projects/bitcoin-core/build.sh#L49-L56). ACKs for top commit: josibake: ACK https://github.com/bitcoin/bitcoin/pull/27699/commits/5228223e1ff2af29e6e77668ce3288005c2adbbc hebasto: ACK 5228223e1ff2af29e6e77668ce3288005c2adbbc, I've tested build system changes on Ubuntu 22.04 and macOS Monterey 12.6.6 (x86_64). Tree-SHA512: cc978e08510c461b875ca8c08ae176b4519fa1108f0efd74dcb7474518945357e0184e54423282c9a496de195e4ddc3e221ee78623bd63e24c50cc86acdf32e2
2023-05-22Merge bitcoin/bitcoin#27683: ci: remove `RUN_SECURITY_TESTS`fanquake
6a936580d1c42576f627d5fac5423ec7af88e547 ci: remove RUN_SECURITY_TESTS (fanquake) Pull request description: We no-longer run any security/symbol checks in the CI, and doubt we will in future (if we do, it'll be via Guix, where this var would be redundant in any case). The CI environment doesn't (exactly) match the release build environment (and is semi-regularly changing), and the binaries produced in the CI don't match how we build release binaries, so there is no point trying to run these checks, especially as we add more involved tests, i.e #26953. ACKs for top commit: josibake: code review ACK https://github.com/bitcoin/bitcoin/pull/27683/commits/6a936580d1c42576f627d5fac5423ec7af88e547 TheCharlatan: ACK 6a936580d1c42576f627d5fac5423ec7af88e547 Tree-SHA512: c0eec61a4b873bac487ba9321b50116a215b4796bd7d416d98ffcd09969dbf635c2cb5aeb225c89d1e6462838fa2a48565048ebe730f48d76d3db46b64855a91
2023-05-22ci: Log qa-assets repo last commitMarcoFalke
This documents the state in the CI output and may help debugging in case of failure.
2023-05-20ci: remove MSAN getrandom syscall workaroundfanquake
The corresponding workaround will also be dropped in oss-fuzz: https://github.com/google/oss-fuzz/blob/25946a544856413d31d9cbb3a366a4aef5a8fd60/projects/bitcoin-core/build.sh#L49.
2023-05-20ci, iwyu: Double maximum line length for includesHennadii Stepanov
2023-05-18build: Bump minimum supported GCC to g++-9MarcoFalke
Also, update the code to use constexpr, which does not work in g++-8. Also, drop the no longer needed build-aux/m4/l_filesystem.m4.
2023-05-18ci: Bump centos:stream8 to centos:stream9MarcoFalke
This is required for the next commit. Also, drop CI_RETRY_EXE before "dnf install", because it requires getopt, which will only be installed later on via util-linux
2023-05-18ci: Document the false positive error for g++-9MarcoFalke
2023-05-18Merge bitcoin/bitcoin#27682: build: Bump minimum supported Clang to clang-10fanquake
fa199ee614a7ed99c6caf329093a3573ea5a664b ci: Drop NO_WERROR=1 for clang-10 build (MarcoFalke) fad2c200f46196af69ccd98b6b637d23ceaf8c45 build: Bump minimum Clang to clang-10 (MarcoFalke) fad7cfee8d6d7bdebd8db950cef09264c91dbb3c doc: Remove outdated CentOS comment (MarcoFalke) Pull request description: It doesn't make sense to support a minimum clang version that is difficult to install on all supported operating systems, which generally ship a later version: * Ubuntu Focal 20.04: https://packages.ubuntu.com/focal/clang-10 and https://packages.ubuntu.com/focal/clang-12 * Debian Bullseye: https://packages.debian.org/bullseye/clang-13 * CentOS 8 Stream: All Clang versions from 11.0 to 15.0 Also, it allows to drop build code, which means it won't waste review when rolling over into cmake (`cmake/module/CheckStdFilesystem.cmake`). ACKs for top commit: hebasto: ACK fa199ee614a7ed99c6caf329093a3573ea5a664b fanquake: ACK fa199ee614a7ed99c6caf329093a3573ea5a664b Tree-SHA512: c1a0e8f191a6db866b8be3c9d254dc3f576fa021e2eaaeb68f3354554a8b38eaa90bbf9871ff92351b715e62a6b7b98cf94eba6dc53d7c951bddb6ad49ba7716
2023-05-17Merge bitcoin/bitcoin#27571: ci: Run iwyu on all src filesfanquake
ddddf4957b02c83ed9b6c46b35d8ae1e137889d2 ci: Run iwyu on all src files (MarcoFalke) Pull request description: This makes it easier to look at the CI output of a file without having to manually add it first to the list. ACKs for top commit: hebasto: ACK ddddf4957b02c83ed9b6c46b35d8ae1e137889d2 Tree-SHA512: 342b52838ae45ea343731c30058cdd5595d5ea5601a1f396de4466ccdd63f7ab07b3a193df3669e4dca7cb535557dcc98f866b3cf986b98176b20ecead123868
2023-05-17ci: remove RUN_SECURITY_TESTSfanquake
We no-longer run any security/syymbol checks in the CI, and doubt we will in future (if we do, it'll be via Guix, where this var would be redundant in any case). The CI environment doesn't (exactly) match the release build environment (and is semi-regularly changing), and the binaries produced in the CI don't match how we build release binaries, so there is no point trying to run these checks, especially as we add more involved tests, i.e #26953.
2023-05-17ci: Drop NO_WERROR=1 for clang-10 buildMarcoFalke
This partially reverts commit 71383f2fad065378393ef55b6d65e14c656b7301. This should be fine, because if warnings are issues again in the future, it can be disabled again, along with a list of the false warnings.
2023-05-17build: Bump minimum Clang to clang-10MarcoFalke
2023-05-17doc: Remove outdated CentOS commentMarcoFalke
No longer applicable after CONFIG_SHELL must be explicitly set to dash after commit fafc55a489d8f654dd7732b699c9bf51b5136b4b.
2023-05-16Merge bitcoin/bitcoin#27667: ci: Remove unused errtrace trap ERRfanquake
fad09b703f5c6d8524a09eef771eb4525f9f3225 ci: Remove unused errtrace trap ERR (MarcoFalke) Pull request description: This was added in commit 069752b72613b772a9536a3e7f15fa75097f2946, presumably at a time when the functional tests wouldn't capture stderr. Now that all tests capture and print stderr on failure, it can be removed. Reference: * Unit tests capture via `2>&1`: https://github.com/bitcoin/bitcoin/blob/d7700d3a26478d9b1648463c188648c7047b1c60/src/Makefile.test.include#L421 * Functional tests capture as well: https://github.com/bitcoin/bitcoin/blob/d7700d3a26478d9b1648463c188648c7047b1c60/test/functional/test_framework/test_node.py#L356 ACKs for top commit: fanquake: ACK fad09b703f5c6d8524a09eef771eb4525f9f3225 hebasto: ACK fad09b703f5c6d8524a09eef771eb4525f9f3225, tested on Ubuntu 22.04: I can still see warnings from the sanitizers in both unit and functional tests. Tree-SHA512: 1e786eee432a7a50eb9f78b06b2b157321cc16f91b613e3b476e9e51572592fe4bcf4dc15df176e5f019f24497ac68cf332d2037b55b57498c93f4e19613163c
2023-05-16ci: Fix "Number of CPUs" outputHennadii Stepanov
2023-05-16ci: Remove unused errtrace trap ERRMarcoFalke
2023-05-15Merge bitcoin/bitcoin#27616: ci: Remove CI_EXEC bloatfanquake
fa01c3c59cbe28be0751c2956609907ecfbcbe49 ci: Remove CI_EXEC bloat (MarcoFalke) fa8a428c92df1455e99c759d31debada1ba1419e move-only: Move almost all CI_EXEC code to 06_script_b.sh (MarcoFalke) Pull request description: `CI_EXEC` has many issues: * It is roughly equivalent to `bash -c "$*"`, meaning that the full command will be treated as a single string, ignoring tokens. * It must be put in front of (almost) every command, making it easy to forget, hard to debug the resulting failure, and the code verbose. Fix all issues by removing it almost completely. ACKs for top commit: TheCharlatan: ACK fa01c3c59cbe28be0751c2956609907ecfbcbe49 Tree-SHA512: 4a65d61f5c35ca945d31f270dba3e96305fd83333a7713f0452c67f02a78e1901113e9f18d21e1dc016403c0033eb32038a9308d0a0ded7ee6b970d18381a1c2
2023-05-13ci: Run iwyu on all src filesMarcoFalke
This makes it easier to look at the CI output of a file without having to manually add it first.
2023-05-10refactor/iwyu: Complete includes for blockmanager_argsTheCharlatan
2023-05-10ci: Remove CI_EXEC bloatMarcoFalke
2023-05-10move-only: Move almost all CI_EXEC code to 06_script_b.shMarcoFalke
[WARN] The commit is obviously broken and will not run the CI system. In the rare case this is hit in a git bisect, just skip the commit. The goal here was to make it trivial to review with the git option: --color-moved=dimmed-zebra It is required to move everything into one file because "exit 0" will otherwise stop working as intended when the containing bash script is no longer executed with "source ...". If there is desire to split up 06_script_b.sh into logical chunks in the future, it will also be easier after the following commit.
2023-05-05ci: Remove CI_EXEC bloat in test/06_script_b.shMarcoFalke
2023-05-05ci: Move CI container kill out of 06_script_b.shMarcoFalke
This cleans up 06_script_b.sh to only contain code to be executed inside the CI pod, which avoids confusion and is needed for the next commit.