aboutsummaryrefslogtreecommitdiff
path: root/ci
AgeCommit message (Collapse)Author
2024-08-16test: Enable detect_leaks=1 in ASAN_OPTIONS explicitlyMarcoFalke
2024-08-09lint: Find function calls in default argumentsMarcoFalke
2024-07-25Merge bitcoin/bitcoin#30522: ci: Add missing qttools5-dev install to Asan taskmerge-script
faa359877270121b3cd442e1e5e865586ce7e530 ci: Add missing qttools5-dev install to Asan task (MarcoFalke) Pull request description: This is required, according to the docs: ``` $ git grep --line-number 'qtbase5-dev qttools5-dev qttools5-dev-tools' doc doc/build-unix.md:84: sudo apt-get install qtbase5-dev qttools5-dev qttools5-dev-tools ``` Also, needed for cmake. ACKs for top commit: hebasto: ACK faa359877270121b3cd442e1e5e865586ce7e530. Tree-SHA512: c986908f757d70d958267c1e902b5d7d94589360db61ddf7b9b398cd635b2172e83510c0c77fd6032810166342a286c0f95225b6c6639acd869e1e51c3348ea7
2024-07-25ci: Add missing qttools5-dev install to Asan taskMarcoFalke
2024-07-24ci: add _LIBCPP_REMOVE_TRANSITIVE_INCLUDES to TSAN jobfanquake
See: https://libcxx.llvm.org/DesignDocs/HeaderRemovalPolicy.html.
2024-07-22lint: Use git clone --depth=1MarcoFalke
No need to download and store more than that.
2024-07-22lint: Add missing docker.io prefix to ci/lint_imagefileMarcoFalke
2024-07-22lint: Use consistent out-of-tree build for python and test_runnerMarcoFalke
This mirrors the build by ./ci/lint_imagefile, which is done out-of-tree in "/". Otherwise, there could be errors due to a dirty tree.
2024-07-22doc: Clarify intent of ./ci/lint_run_all.shMarcoFalke
2024-07-22lint: Use $CI_RETRY_EXE when building ./ci/lint_imagefileMarcoFalke
Previous code was confusing and brittle. For example, the full import "source ./ci/test/00_setup_env.sh" and $PATH overwrite was not needed. Fix it by simply copying the exe to /ci_retry and use that in $CI_RETRY_EXE. This is also a fix, because previously ci/lint_imagefile did use an empty $CI_RETRY_EXE.
2024-07-08Merge bitcoin/bitcoin#30263: build: Bump clang minimum supported version to 16merge-script
fa8f53273c7e5965620d31a8c3fe5f223cb76888 refactor: Remove no longer needed clang-15 workaround for std::span (MarcoFalke) 9999dbc1bd171931f02266d7c1a5cfd39f49238e fuzz: Clarify Apple-Clang-16 workaround (MarcoFalke) fa7462c67ab9b6d45484ce92b44d03f812627d6e build: Bump clang minimum supported version to 16 (MarcoFalke) Pull request description: Most supported operating systems ship with clang-16 (or later), so bump the minimum to that and allow new code to drop workarounds for previous clang bugs. For reference: * https://packages.debian.org/bookworm/clang-16 * https://packages.ubuntu.com/noble/clang (clang-18) * CentOS-like 8/9 Stream: All Clang versions from 16 to 17 * FreeBSD 12/13: All Clang versions from 16 to 18 * OpenSuse Tumbleweed ships with https://software.opensuse.org/package/clang (`clang18`); No idea about OpenSuse Leap On operating systems where the clang version is not shipped by default, the user would have to use GCC, or install clang in a different way. For example: * https://packages.debian.org/bookworm/g++ (g++-12) * https://packages.ubuntu.com/jammy/g++ (g++-11) * https://apt.llvm.org/, or nix, or guix, or compile clang from source, ... **Ubuntu 22.04 LTS does not ship with clang-16**, so one of the above workarounds is needed there. macOS 13 is unaffected, and the previous minimum requirement of Xcode15.0 remains, see also https://github.com/bitcoin/bitcoin/blame/b1ba1b178f501daa1afdd91f9efec34e5ec1e294/.github/workflows/ci.yml#L93. For macOS 11 (Big Sur) and 12 (Monterey) you need to install a more recent version of llvm, this remains unchanged as well, see https://github.com/bitcoin/bitcoin/blame/b1ba1b178f501daa1afdd91f9efec34e5ec1e294/doc/build-osx.md#L54. ACKs for top commit: hebasto: ACK fa8f53273c7e5965620d31a8c3fe5f223cb76888, I have reviewed the code and it looks OK. TheCharlatan: Re-ACK fa8f53273c7e5965620d31a8c3fe5f223cb76888 stickies-v: ACK fa8f53273c7e5965620d31a8c3fe5f223cb76888 Tree-SHA512: 18b79f88301a63bb5e367d2f52fffccd5fb84409061800158e51051667f6581a4cd71d4859d4cfa6d23e47e92963ab637e5ad87e3170ed23b5bebfbe99e759e2
2024-07-03lint: ignore files ignored by git in mlcwillcl-ark
Updating to MLC v0.18.0 includes a new feature which will ignore all files ignored by git: `--gitignore`. This helps avoid false-positives flagged by this linter in non-project files, such as a developer might expect to have in their directory (e.g. guix-builds, python venvs, etc.)
2024-07-01ci: Clear unused /msan/llvm-projectMarcoFalke
2024-06-26build: Bump clang minimum supported version to 16MarcoFalke
2024-06-21ci: increase available ccache size to 300MBMax Edwards
2024-06-20ci: add option for running tests without volumeMax Edwards
DANGER_CI_ON_HOST_CACHE_FOLDERS if set will mount caches in directories on the host rather than in docker volumes. Supports saving and restoring caches on Github Actions.
2024-06-17Merge bitcoin/bitcoin#30193: ci: move ASan job to GitHub Actions from Cirrus CIAva Chow
9eea51d9058ad638861aa4b94c1c6e71caeb8765 ci: move Asan / LSan / USDT job to Github Actions (Max Edwards) 4b527fa93b9763a33842069bc07446313cbf5e0f ci: add IPV6 network to ci container (Max Edwards) Pull request description: PR for moving the ASAN + LSAN + USDT + friends job to github actions from Cirrus. The motivation for this PR is that this task needs a full VM (or bare metal) to function, because of the tracepoints. It can not run in a container on an arbitrary Linux, because the outside machine must exactly match the specification of the distro used in the CI task config. This requires more maintenance for the persistent worker, and I think moving to GHA will reduce the maintenance burden, or at least make it possible for anyone to work on. Also, it makes it easier to run the task on forks (bitcoin-inquisition, bitcoin-knots, devel forks, ...) without having to set-up a real machine. ACKs for top commit: maflcko: review ACK 9eea51d9058ad638861aa4b94c1c6e71caeb8765 achow101: ACK 9eea51d9058ad638861aa4b94c1c6e71caeb8765 hebasto: ACK 9eea51d9058ad638861aa4b94c1c6e71caeb8765. Tree-SHA512: 1111c1c9e3a11e725dff1344643fff3c91fb9b4d7c1cc9a7d507a8f146f5223316a00272030b41ae37ecb59d044f2e90e1cd907450049b25f094f0b60643d4c7
2024-06-12ci: move Asan / LSan / USDT job to Github ActionsMax Edwards
Moving it from Cirrus CI so it can be easier to maintain and used by forks
2024-06-10ci: update deps for macOS cross buildfanquake
We are going to use Clang 18, which isn't on Jammy, so bump to Noble.
2024-06-08ci: add IPV6 network to ci containerMax Edwards
Allows IPV6 functional tests to run inside the container
2024-05-30Merge bitcoin/bitcoin#30034: ci: add markdown link check jobmerge-script
4b7d9842691046b01f0c08d69f924ddb62ccc4c6 lint: add markdown hyperlink checker (willcl-ark) Pull request description: Potential followup to: #30025 This should prevent us reintroducing broken markdown links. It does not test "online" (external) links, only those within this repo. Both relative and absolute links are parsed successfully if they resolve. ACKs for top commit: maflcko: re-utACK 4b7d9842691046b01f0c08d69f924ddb62ccc4c6 davidgumberg: reACK https://github.com/bitcoin/bitcoin/commit/4b7d9842691046b01f0c08d69f924ddb62ccc4c6 Tree-SHA512: 9bc40d700b73499c046bb76157bc139f32ec3850f64ef813bbf7f18f9c01a253abe6a857d6f559890165f2bd26e7742c05d86232cd9b8efb33ff85d735f4f095
2024-05-30Merge bitcoin/bitcoin#30049: build, test, doc: Temporarily remove ↵merge-script
Android-related stuff 5deb0b024e14c7c63d405c651d1ca323560a1c21 build, test, doc: Temporarily remove Android-related stuff (Hennadii Stepanov) Pull request description: Previously, our Android builds were geared towards generating APKs, which relied on Qt. However, after migrating to C++20, compiling for Android became unfeasible due to Qt 5.15's compatibility limitations with NDK only up to r25, which includes an outdated embedded libc++ (see https://github.com/bitcoin/bitcoin/issues/29360). All removed stuff will be reinstated after migrating the build system to CMake and upgrading Qt to version 6.x. This PR makes possible a clean migration to the CMake-based build system as it removes code, which is not used at this moment. ACKs for top commit: vasild: ACK 5deb0b024e14c7c63d405c651d1ca323560a1c21 fanquake: ACK 5deb0b024e14c7c63d405c651d1ca323560a1c21 - given none of this is currently tested/wont compile. Can be revisted in future. Tree-SHA512: 3bc2ccfe881e11cc1d78c27acd6f1d86cfba86821ef3bb5eca2e80d978fdfa13659ec82284dcaadc507e2394524dea91d4b8f81d0030c1cef9708df8be76bf07
2024-05-24lint: add markdown hyperlink checkerwillcl-ark
This adds a markdown hyperlink check task to the lint test_runner. It relies on having the [`mlc`](https://crates.io/crates/mlc) binary found on $PATH, but will fail with `success` if the binary is not found. `mlc` is also added to the ci/04_install.sh script run by the containerfile. Note that broken markdown hyperlinks will be detected in untracked markdown files found in a dirty working directory (including e.g. .venv).
2024-05-21ci: Add mising -Wno-error=maybe-uninitialized to armhf taskMarcoFalke
2024-05-07ci: Exclude feature_init for now in valgrind taskMarcoFalke
2024-05-06build, test, doc: Temporarily remove Android-related stuffHennadii Stepanov
Previously, our Android builds were geared towards generating APKs, which relied on Qt. However, after migrating to C++20, compiling for Android became unfeasible due to Qt 5.15's compatibility limitations with NDK only up to r25, which includes an outdated embedded libc++. All removed stuff will be reinstated after migrating the build system to CMake and upgrading Qt to version 6.x."
2024-05-03ci: remove -Wdocumentation from -Werror in multiprocess CIfanquake
The issues here are coming from Boost Test code.
2024-05-03ci: remove -Warray-bounds from -Werror for win64fanquake
These warnings are coming from leveldb, and appear to be fixed starting with GCC 13.
2024-05-03ci: disable -Werror=maybe-uninitialized for Windows buildsfanquake
This produces false positives, such as: ```bash torcontrol.cpp: In static member function ‘static void TorControlConnection::readcb(bufferevent*, void*)’: torcontrol.cpp:94:28: error: ‘result’ may be used uninitialized [-Werror=maybe-uninitialized] 94 | self->message.code = ToIntegral<int>(s.substr(0, 3)).value_or(0); | ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ./netaddress.h:18, from ./torcontrol.h:11, from torcontrol.cpp:6: ./util/strencodings.h:184:7: note: ‘result’ was declared here 184 | T result; | ^~~~~~ cc1plus: all warnings being treated as errors make[2]: *** [Makefile:11088: libbitcoin_node_a-torcontrol.o] Error 1 ```
2024-04-27build: Bump clang minimum supported version to 15MarcoFalke
2024-04-24Merge bitcoin/bitcoin#29837: ci: disable `_FORTIFY_SOURCE` with MSANmerge-script
08ff17d1420a3d1c14c6b1a5436678fbb1dd9cbc ci: disable _FORTIFY_SOURCE with MSAN (fanquake) Pull request description: By undefining `_FORTIFY_SOURCE` we can drop`--disable-hardening`. ACKs for top commit: maflcko: lgtm ACK 08ff17d1420a3d1c14c6b1a5436678fbb1dd9cbc hernanmarino: utACK 08ff17d1420a3d1c14c6b1a5436678fbb1dd9cbc . Relevant CI test seems to be working OK. Tree-SHA512: 948fd075aa648a7e34c37376fb913074ebc07d1c3cb0737d5fcbe7eac0b35c4152139773e4515ccb80f2d11b1ced6c6984da1757c2bcf8dd90e8ff6f664dae8e
2024-04-21ci: Drop no longer needed `-I` flag in "tidy" taskHennadii Stepanov
2024-04-15Merge bitcoin/bitcoin#29848: ci: use Clang 16 for Valgrindmerge-script
ad21f2294821d7c436e58a8f199fb555b11a56ad ci: use clang-16 for Valgrind (fanquake) Pull request description: Switch to Ubuntu Noble. Valgrind 3.19 -> 3.22 Clang 14 -> Clang 16 ACKs for top commit: maflcko: lgtm ACK ad21f2294821d7c436e58a8f199fb555b11a56ad Tree-SHA512: ec79ef9faaec97e34529ae36fff7798f859daca6a1e3563bc50e5d56a56ee4525c736976158a6e950c5b9f810c498d54ab128df984f42441e706033906c2ea3e
2024-04-14ci: use clang-16 for Valgrindfanquake
Switch to Ubuntu Noble.
2024-04-12ci: Bump s390x to ubuntu:24.04MarcoFalke
Re-enable feature_init
2024-04-09ci: disable _FORTIFY_SOURCE with MSANfanquake
2024-04-09Revert "ci: Temporarily disable bpfcc-tools"fanquake
This reverts commit fac012c7262f036e9b6f5800e57dcd63870a871c.
2024-04-06ci: remove --with-asm usage (secp256k1)fanquake
2024-04-06ci: use LLVM 18.1.3 in MSAN jobsfanquake
2024-04-05Merge bitcoin/bitcoin#29800: ci: Drop duplicated compiler flagsfanquake
a3485af67da4949c72c45acc608f8746ed0e0848 ci: Drop duplicated compiler flags (Hennadii Stepanov) Pull request description: On the master branch @ 0d509bab45d292caeaf34600e57b5928757c6005, it is easy to check the _"Options used to compile and link"_ section in the `configure` script output and observe duplicated compiler flags. This PR cleans such cases up. ACKs for top commit: maflcko: re-ACK a3485af67da4949c72c45acc608f8746ed0e0848 fanquake: ACK a3485af67da4949c72c45acc608f8746ed0e0848 - no-longer a change in behaviour. Tree-SHA512: 7e644fcfad7be48af3b18edd2994c0c78a21ac3f9fff497724be80f74c9e859d156de15ca4024c5c50d1080435576ce63402b48aba5c2fd556e2ed7e318e0e34
2024-04-05ci: Drop duplicated compiler flagsHennadii Stepanov
2024-04-04Merge bitcoin/bitcoin#29788: ci: Temporarily disable bpfcc-toolsfanquake
fac012c7262f036e9b6f5800e57dcd63870a871c ci: Temporarily disable bpfcc-tools (MarcoFalke) Pull request description: This works around package install errors, such as https://github.com/bitcoin/bitcoin/runs/23354020361. Should be possible to reproduce locally via `apt update && apt install bpfcc-tools` on noble: ``` python3-bpfcc : Depends: libbpfcc (>= 0.29.1+ds-1ubuntu4) but it is not going to be installed ACKs for top commit: hebasto: ACK fac012c7262f036e9b6f5800e57dcd63870a871c, I have reviewed the code, it looks OK. And CI is green. TheCharlatan: ACK fac012c7262f036e9b6f5800e57dcd63870a871c Tree-SHA512: 369e89bc0fbf4d75455c7c047ae904849267f82e647eeadd7ee6045393bd9812a5e682a58eb8d2ccd8c89a030e6665f054596fdcd0708f591ed4c693398125d1
2024-04-02ci: Temporarily disable bpfcc-toolsMarcoFalke
2024-04-01Merge bitcoin/bitcoin#29648: Remove libbitcoinconsensusfanquake
80f8b92f4f2311b9e9a25361c9dd973244e6f95c remove libbitcoinconsensus (fanquake) Pull request description: This was deprecated in `v27.0`, for removal in `v28.0`. See discussion in PR #29189. ACKs for top commit: theuni: Concept ACK and light review ACK 80f8b92f4f2311b9e9a25361c9dd973244e6f95c. My only hesitation here is that (afaics?) there's now nothing keeping undesired features like threading or globals from working their way into the interpreter in future commits. m3dwards: Concept ACK https://github.com/bitcoin/bitcoin/pull/29648/commits/80f8b92f4f2311b9e9a25361c9dd973244e6f95c TheCharlatan: ACK 80f8b92f4f2311b9e9a25361c9dd973244e6f95c hebasto: ACK 80f8b92f4f2311b9e9a25361c9dd973244e6f95c, I have reviewed the code and it looks OK. Tree-SHA512: 17a62118aeb088f2695c892bb32794dfea3061e3cb7d9e8e9f1c06c3ff6f63a7587fa532e37edbb91fbc5a19b12c9a0f8e05fa9e8864aa07f92665375d847e80
2024-04-01Merge bitcoin/bitcoin#29765: ci: Use clang-18fanquake
fa75220ac5e0ea401a26dd2f16a88627e51c240a ci: Use clang-18 in asan/fuzz/tsan task (MarcoFalke) fad23a06469607689c4f637bb407c96af4902a27 ci: Bump clang+llvm in i686_multiprocess task (MarcoFalke) Pull request description: Use clang-18, which comes with bugfixes and sanitizer upgrades. ACKs for top commit: fanquake: ACK fa75220ac5e0ea401a26dd2f16a88627e51c240a Tree-SHA512: da251eb55d3a7e537110b03fb0fc10fc6e2f4406d55bdb33bdc91459daabfd3b8d1d20859a66718bb1b09126e11495f6584c52504a85eb09bde9eafafdaf0b0b
2024-04-01Merge bitcoin/bitcoin#29764: doc: Suggest installing dev packages for ↵fanquake
debian/ubuntu qt5 build 6c2990416e2dabd845f5ec50ec6ff138136c9b08 ci: Pull in qtbase5-dev instead of seperate low-level libraries (laanwj) a3c6a13cb23999fa70c428f1229acbf1b3883f11 doc: Suggest installing dev packages for debian/ubuntu qt5 build (laanwj) Pull request description: Pretty much all library packages were renamed in the 64-bit time_t migration to add `t64` (even on 64-bit platforms). Instead of complicating the doc with conditional package names, suggest installing the `-dev` packages which still have the same name, and besides that, are the right way to go about it as they contain the "user facing" C++ headers needed to build against Qt5. They pull in the necessary library packages through dependencies. For Fedora, devel packages are already suggested. This affects Ubuntu 24.04 and Debian Testing. ACKs for top commit: maflcko: lgtm ACK 6c2990416e2dabd845f5ec50ec6ff138136c9b08 hebasto: ACK 6c2990416e2dabd845f5ec50ec6ff138136c9b08. Tree-SHA512: dae21b7d08fdb221b7b72c323fdaaa6d1a8b014f90e24d2beae64b1ae229fdbeb93d726a61e826447813e52a3cb9775426aefc6c44a4c5ccc541afabb89cb135
2024-04-01Merge bitcoin/bitcoin#29738: doc: fix typosfanquake
601edd8ee8810b5c6b2184ce8d7f7b45e70913cf ci: use codespell 2.2.6 (fanquake) 52fa0d285f4e8109ebdd8b1e43c897f6bfaa8e65 doc: fix some typos (crazeteam) b5ed13a2408a141d737341137b26b2f0249c8167 doc: Fix typos (RoboSchmied) Pull request description: Combines the recent PRs to fix typos so they can be merged. ACKs for top commit: brunoerg: crACK 601edd8ee8810b5c6b2184ce8d7f7b45e70913cf tdb3: crACK 601edd8ee8810b5c6b2184ce8d7f7b45e70913cf kristapsk: cr utACK 601edd8ee8810b5c6b2184ce8d7f7b45e70913cf Tree-SHA512: d054b1dad1336d6b9291cc5d5252d4debf6424a993d4edd6a97d7c15055a7fc48a333d30967f72e7dc9c6c1d9a9038ca8bb5e219c529f4c2365ea48404a508d0
2024-03-29ci: Use clang-18 in asan/fuzz/tsan taskMarcoFalke
2024-03-29ci: Bump clang+llvm in i686_multiprocess taskMarcoFalke
2024-03-29ci: Pull in qtbase5-dev instead of seperate low-level librarieslaanwj
Fix CI build for t64 migration.