aboutsummaryrefslogtreecommitdiff
path: root/.cirrus.yml
AgeCommit message (Collapse)Author
2022-10-12ci: Use Multi-ToolTask in "Win64 native" taskHennadii Stepanov
See https://devblogs.microsoft.com/cppblog/improved-parallelism-in-msbuild/
2022-10-11ci: Use all available CPUs for functional tests in "Win64 native" taskHennadii Stepanov
2022-10-04ci: Workaround Windows filesystem executable bit lossHennadii Stepanov
2022-10-04ci: Use same `merge_script` implementation for Windows as for allHennadii Stepanov
2022-10-04ci: Move `git config` commands into script where they are usedHennadii Stepanov
2022-10-03ci: Run `bench_bitcoin.exe --sanity-check` in "Win64 native" taskHennadii Stepanov
Also a better name used for the script as it follows GNU's `make check`.
2022-09-30ci: Bump vcpkg to the latest version `2022.09.27`Hennadii Stepanov
Dependency changes (2022.06.16.1 - 2022.09.27): - boost 1.79.0#0 -> 1.80.0#0 - sqlite3 3.37.2#1 -> 3.39.2#0 - zeromq 4.3.4#5 -> 4.3.4#6
2022-09-29ci: Use remote pull/merge ref instead of local git mergeMacroFake
The merge strategy on the remote may be different than the local one. This may cause local merges to be different or fail completely. Fix this by using the result of the remote merge.
2022-08-25ci: Increase `windows_container` resourcesHennadii Stepanov
Required to fit timeout when all build caches are invalidated.
2022-08-25ci: Force `ccache` package version for MSVC buildHennadii Stepanov
The ccache 4.6.2 is broken.
2022-08-01Merge bitcoin/bitcoin#25528: ci: run USDT interface tests in the CIMacroFake
cc7335edc87c6ef34429b4df94f53973db520aac ci: run USDT interface test in a VM (0xb10c) dba6f8234217565957e37516a0ea655f1180d99c test: adopt USDT utxocache interface tests (0xb10c) 220a5a2841172a07d6d7849596316f0e0933e272 test: hook into PID in tracing tests (0xb10c) Pull request description: Changes a CI task that runs test the previously not run `test/functional/interface_usdt_*.py` functional tests (added in https://github.com/bitcoin/bitcoin/pull/24358). This task is run as CirussCI `compute_engine_instance` VM as hooking into the tracepoints is not possible in CirrusCI docker containers (https://github.com/bitcoin/bitcoin/issues/23296#issuecomment-1024920845). We use an unoffical PPA and untrusted `bpfcc-tools` package in the CI as the Ubuntu jammy and Debian bullseye packages are outdated. We hope use an official package when new Ubuntu/Debian releases are available for the use with Google Compute Engine. We make sure to hook into `bitcoind` binaries in USDT interface tests via their PID, instead of their path. This makes sure multiple functional tests running in parallel don't interfere with each other. The utxocache USDT interface tests is adopted to a change of the functional test framework that wasn't detected as the tests weren't run in the CI. As the tracepoints expose internals, it can happen that we need to adopt the interface test when internals change. This is a bit awkward, and if it happens to frequently, we should consider generalizing the tests a bit more. For now it's fine, I think. See the individual commit messages for more details on the changes. Fixes https://github.com/bitcoin/bitcoin/issues/24782 Fixes https://github.com/bitcoin/bitcoin/issues/23296 I'd like to hear from reviewers: - Are we OK with using the [`hadret/bpfcc`](https://launchpad.net/~hadret/+archive/ubuntu/bpfcc) PPA for now? There is a clear plan when to drop it and as is currently, it could only impact the newly added VM task. - ~~Adding a new task increases CI runtime and costs. Should an existing `container` CI task be ported to a VM and reused instead?~~ Yes, see https://github.com/bitcoin/bitcoin/pull/25528#issuecomment-1179509525 ACKs for top commit: MarcoFalke: cr ACK cc7335edc87c6ef34429b4df94f53973db520aac Tree-SHA512: b7fddccc0a77d82371229d048abe0bf2c4ccaa45906497ef3040cf99e7f05561890aef4c253c40e4afc96bb838c9787fae81c8454c6fd9db583276e005a4ccb3
2022-07-30build: Bump Qt to 5.15.5 in dependsHennadii Stepanov
2022-07-08ci: run USDT interface test in a VM0xb10c
Our CI tasks are run by CirrusCI in Docker containers in a Google Compute Engine based Kubernetes environment. These containers have limited capabilities - especially CAP_SYS_ADMIN is missing. See https://github.com/bitcoin/bitcoin/issues/23296#issuecomment-1024920845 We need elevated privileges to hook into the USDT tracepoints. We use a CirrusCI "compute_engine_instance" (a VM, not a container) where we have the required privileges. The ubunut-mininmal-2204-lts was choosen with debian-11 being an alternative. Both pack an outdated 'bpfcc-tools' package (v0.18.0) from 2020. This version prints warnings to stderr during BPF bytecode compilation, which causes our functional test runner to fail. This is fixed in newer verison. Until debian-12 or a newer Ubuntu release is avaliable as image in GCE (https://cloud.google.com/compute/docs/images/os-details), we use a third-party and untrusted PPA that releases up-to-date versions of the package. The official iovisor (authors of BCC) PPA is outdated too. An alternative would be to compile BCC from source in the CI. Co-authored-by: MacroFake <falke.marco@gmail.com>
2022-06-27Revert "ci: Increase CPU number for "Win64 native" task"Hennadii Stepanov
This reverts commit 849cf967a3bb69db9431e993e03b6dbb04a99d8b.
2022-06-26build: Bump default `PlatformToolset` for Visual Studio 2022Hennadii Stepanov
2022-06-26ci: Increase CPU number for "Win64 native" taskHennadii Stepanov
Currently, the time it takes to get the "Win64 native" task done with all of the caches been invalidated is very close to the 2 hours limit. This task is the only one which runs on Windows Community Cluster, therefore this change should not affect other CI tasks.
2022-06-25ci: Bump vcpkg to the latest versionHennadii Stepanov
Dependency changes: - boost-* 1.78.0#0 -> 1.79.0#0
2022-06-25ci: Limit ccache cache size properly on "Win64 native" taskHennadii Stepanov
2022-06-25ci: Update Windows task image up to visualstudio2022Hennadii Stepanov
2022-06-22ci: Improve naming related to "macOS 12 native x86_64" taskHennadii Stepanov
2022-06-22ci, refactor: Add `MACOS_NATIVE_TASK_TEMPLATE`Hennadii Stepanov
A native macOS task does not aware of Linux container settings, and it does not use the `depends_built_cache`.
2022-05-31ci, android: Update NDK up to r23cHennadii Stepanov
2022-04-13ci: Bump vcpkg to the latest versionHennadii Stepanov
Dependency changes: - zeromq 4.3.4#4 -> 4.3.4#5
2022-04-13ci: Make Qt configure option change invalidate "msvc_qt_built_cache"Hennadii Stepanov
2022-04-06Merge bitcoin/bitcoin#24753: ci: Add clang-tidy taskfanquake
fab24f8c3540b6f1a128cb9d6812df6678472b8d ci: Add clang-tidy task (MarcoFalke) Pull request description: Fixes #24747 ACKs for top commit: fanquake: ACK fab24f8c3540b6f1a128cb9d6812df6678472b8d vincenzopalazzo: Code Review ACK https://github.com/bitcoin/bitcoin/pull/24753/commits/fab24f8c3540b6f1a128cb9d6812df6678472b8d Tree-SHA512: 87a5d67a23d540cea09925a6c186303c1249d4ca244b95940c5214860bf7a849fa12cc4fcf1bb9270b1004407124b3487902969d8ae9d2b14dae1fdfb57cc7e8
2022-04-04ci: Add clang-tidy taskMarcoFalke
2022-04-01build, qt: bump Qt5 version to 5.15.3Pavol Rusnak
Qt 5.15.3 release is a patch release made on the top of Qt 5.15.2. As a patch release, Qt 5.15.3 does not add any new functionality but provides bug fixes and other improvements. https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/5.15.3/release-note.md * dropped patches: - patches/qt/dont_use_avx_android_x86_64.patch - patches/qt/fix_bigsur_style.patch * adjusted patches: - patches/qt/fix_android_jni_static.patch - patches/qt/fix_limits_header.patch - patches/qt/use_android_ndk23.patch Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
2022-03-29Merge bitcoin/bitcoin#24540: ci: Integrate ccache into MSVC buildMarcoFalke
3a53927f037bb4ab72a2900c6d0a5d7577a669ed ci: Integrate ccache into MSVC build (Hennadii Stepanov) Pull request description: [ccache 4.6](https://ccache.dev/releasenotes.html#_ccache_4_6): > Added support for caching calls to Microsoft Visual C++ (MSVC) Integrated into our native Windows CI task. [On master](url) (c109e7d51c9c5614aafce184c63b52ad2e859eb2): ![Screenshot from 2022-03-12 10-17-58](https://user-images.githubusercontent.com/32963518/158012098-7ac9d441-2eb0-481e-bcc5-3700c1ce2b15.png) [This PR](https://cirrus-ci.com/task/6572984340054016): ![Screenshot from 2022-03-12 10-25-33](https://user-images.githubusercontent.com/32963518/158012361-d6bf88bc-f98d-4771-8b4f-31bf5673d085.png) ``` Summary: Hits: 222 / 222 (100.0 %) Direct: 222 / 222 (100.0 %) Preprocessed: 0 / 0 Misses: 0 Direct: 0 Preprocessed: 0 Errors: 7 Uncacheable: 9 Primary storage: Hits: 444 / 444 (100.0 %) Misses: 0 Cache size (GB): 0.04 / 5.00 (0.86 %) Use the -v/--verbose option for more details. ``` Top commit has no ACKs. Tree-SHA512: d8cf91d8e75a5187cf456960bdf759f857fb9a9b0c4087e5e46ccbe2202aca5f1b9b38a47ec54d98e885c0f5d78de93a3188fb966fa5b346e81907c211ba1e79
2022-03-28ci: Use monterey-xcode-13.3MarcoFalke
2022-03-15test: Actually print TSan tracebacksMarcoFalke
2022-03-12ci: Integrate ccache into MSVC buildHennadii Stepanov
2022-03-10ci: Invalidate vcpkg binary cache if dependencies changedHennadii Stepanov
2022-03-07Merge bitcoin/bitcoin#24132: build: Bump minimum Qt version to 5.11.3fanquake
956f7322f60db7b8be551c9074b4c633e514079d build: Bump minimum Qt version to 5.11.3 (Hennadii Stepanov) e22d10b936eb7563b2b6611332d9e4c73a2f59d4 ci: Switch from bionic to buster (Hennadii Stepanov) Pull request description: The current minimum Qt version is 5.9.5 which has been set in bitcoin/bitcoin#21286. Distro support: - centos 7 -- unsupported since bitcoin/bitcoin#23511 - centos 8 -- [5.15.2](http://mirror.centos.org/centos/8/AppStream/x86_64/os/Packages/qt5-qtbase-5.15.2-3.el8.x86_64.rpm) - buster -- [5.11.3](https://packages.debian.org/buster/libqt5core5a) - bullseye -- [5.15.2](https://packages.debian.org/bullseye/libqt5core5a) - _bionic_ -- [5.9.5](https://packages.ubuntu.com/bionic/libqt5core5a) - focal -- [5.12.8](https://packages.ubuntu.com/focal/libqt5core5a) As another Ubuntu LTS is coming soon, it seems unreasonable to stick to Qt 5.9 which support [ended](https://www.qt.io/blog/2017/06/07/renewed-qt-support-services) on 2020-05-31. Anyway, it's still possible to build Bitcoin Core GUI with depends on bionic system. Bumping the minimum Qt version allows to make code safer and more reliable, e.g.: - functor-parameter overload of [`QMetaObject::invokeMethod`](https://doc.qt.io/qt-5/qmetaobject.html#invokeMethod-4) - fixed https://bugreports.qt.io/browse/QTBUG-10907 An example of the patch using the functor-overload of `QMetaObject::invokeMethod`: ```diff --- a/src/qt/walletmodel.cpp +++ b/src/qt/walletmodel.cpp @@ -349,7 +349,7 @@ bool WalletModel::changePassphrase(const SecureString &oldPass, const SecureStri static void NotifyUnload(WalletModel* walletModel) { qDebug() << "NotifyUnload"; - bool invoked = QMetaObject::invokeMethod(walletModel, "unload"); + bool invoked = QMetaObject::invokeMethod(walletModel, &WalletModel::unload); assert(invoked); } ``` It uses the same new syntax as signal-slot connection with compile-time check. Also see bitcoin/bitcoin#16348. This PR is intended to be merged early [after](https://github.com/bitcoin/bitcoin/issues/22969) branching `23.x` off. ACKs for top commit: MarcoFalke: cr ACK 956f7322f60db7b8be551c9074b4c633e514079d fanquake: ACK 956f7322f60db7b8be551c9074b4c633e514079d Tree-SHA512: 3d652bcdcd990ce785ad412ed70234d4f27743895e535a53ed44b35d4afc3052e066c4c84f417e30bc53d0a3dd9ebed62444c57b7c765cb1e9aa687fbf866877
2022-03-07ci: Bump vcpkg to the latest versionHennadii Stepanov
Dependency changes: - boost 1.75.0 -> 1.78.0 - double-conversion 3.1.5 -> 3.2.0 - sqlite3 3.35.4 -> 3.37.2
2022-03-03Merge bitcoin/bitcoin#24304: [kernel 0/n] Introduce `bitcoin-chainstate`MarcoFalke
2c03cec2ff8cdbfd5da92bfb507d218e5c6435b0 ci: Build bitcoin-chainstate (Carl Dong) 095aa6ca37bf0bd5c5e221bab779978a99b2a34c build: Add example bitcoin-chainstate executable (Carl Dong) Pull request description: Part of: #24303 This PR introduces an example/demo `bitcoin-chainstate` executable using said library which can print out information about a datadir and take in new blocks on stdin. Please read the commit messages for more details. ----- #### You may ask: WTF?! Why is `index/*.cpp`, etc. being linked in? This PR is meant only to capture the state of dependencies in our consensus engine as of right now. There are many things to decouple from consensus, which will be done in subsequent PRs. Listing the files out right now in `bitcoin_chainstate_SOURCES` is purely to give us a clear picture of the task at hand, it is **not** to say that these dependencies _belongs_ there in any way. ### TODO 1. Clean up `bitcoin-chainstate.cpp` It is quite ugly, with a lot of comments I've left for myself, I should clean it up to the best of my abilities (the ugliness of our init/shutdown might be the upper bound on cleanliness here...) ACKs for top commit: ajtowns: ACK 2c03cec2ff8cdbfd5da92bfb507d218e5c6435b0 ryanofsky: Code review ACK 2c03cec2ff8cdbfd5da92bfb507d218e5c6435b0. Just rebase, comments, formatting change since last review MarcoFalke: re-ACK 2c03cec2ff8cdbfd5da92bfb507d218e5c6435b0 🏔 Tree-SHA512: 86e7fb5718caa577df8abc8288c754f4a590650d974df9d2f6476c87ed25c70f923c4db651c6963f33498fc7a3a31f6692b9a75cbc996bf4888c5dac2f34a13b
2022-02-21Merge bitcoin/bitcoin#24292: Revert "ci: Run fuzzer task for the master ↵fanquake
branch only" fa27745ccbdf8df7949a2e79dba18de49dc89169 ci: Bump fuzz tasks to jammy (MarcoFalke) fab8cd5f8764883dc48695c0e0916bae42f1cfdc Revert "ci: Run fuzzer task for the master branch only" (MarcoFalke) Pull request description: This reverts commit 5a9e255e5a324e7aa0b63a9634aa3cfda9a300bd. I think we should attempt to maintain the fuzz tasks for release branches as well. If it is too difficult for one branch, it could make sense to disable it for that branch, but not for all branches unconditionally. Also, bump to jammy. ACKs for top commit: fanquake: ACK fa27745ccbdf8df7949a2e79dba18de49dc89169 - we'll see how we go with the 23.x release branch. Tree-SHA512: d6d08e7dce0884b556c51ff1896aebbbb5a805c22decd58af81a04192d19876978696017b489ec55886ddfd5c022963baaab5f11022369ae5291016826ff8017
2022-02-18ci: use Ubuntu Jammy for Windows CIfanquake
This means we'll compile using GCC 10.3.x and mingw-w64 8.0.0 which better matches our Guix release environment.
2022-02-14ci: Build bitcoin-chainstateCarl Dong
...to make sure that the linker errors that arise from coupling regressions are caught by CI. Adding to the "no wallet" ci job as suggested by MarcoFalke.
2022-02-11ci: Follow Cirrus CI docsHennadii Stepanov
See https://github.com/cirruslabs/cirrus-ci-docs/pull/763
2022-02-08ci: Bump fuzz tasks to jammyMarcoFalke
This gives them a newer clang version, which may have more sanitizers available.
2022-02-08Revert "ci: Run fuzzer task for the master branch only"MarcoFalke
This reverts commit 5a9e255e5a324e7aa0b63a9634aa3cfda9a300bd.
2022-02-05ci: Switch from bionic to busterHennadii Stepanov
This change is a prerequisite for the following bumping Qt minimum version to 5.11.3. It is required as bionic has Qt 5.9.5. Effectively, this also changes: - gcc from 8.4.0 to 8.3.0 - python from 3.6.5 to 3.7.3
2022-02-01ci: Bump CentOS 8 imageMarcoFalke
2022-01-26build: use macOS 11 SDK (Xcode 12.2)fanquake
This should be sufficient to support building for Apple ARM when cross-compiling.
2022-01-03ci: Update Cirrus CI task nameHennadii Stepanov
Missed in bitcoin/bitcoin#22815.
2021-12-20Merge bitcoin/bitcoin#23797: ci: Use Cirrus "greedy" flag to use idle CPU ↵MarcoFalke
time when available cfeb1942bc9e80be59ef3c2f122d254290db5347 ci: Use Cirrus "greedy" flag to use idle CPU time when available (Luke Dashjr) Pull request description: Disabled for MSan to avoid excessive RAM usage Top commit has no ACKs. Tree-SHA512: 4351d477b8749b3578a1f808ba7e963a44e0a4a1b695605b473ab3cf424d75ade6e13e7401a39675843e7c9b48a3e46936909d6bcc4af1f7abe1b690fe5b7a55
2021-12-18ci: Use Cirrus "greedy" flag to use idle CPU time when availableLuke Dashjr
MAKEJOBS limited for MSan to avoid excessive RAM usage
2021-12-18ci: Use system sqlite in native macOS taskHennadii Stepanov
2021-12-18ci: Bump the macOS image to the latest MontereyHennadii Stepanov
2021-12-10Merge bitcoin/bitcoin#23682: ci: Make macOS native task sqlite onlyMarcoFalke
fad2e0a36a56222ec6284a03f374e80527701d15 ci: Make macOS native task sqlite only (MarcoFalke) Pull request description: There are many sqlite-only test failures (#23563, #23562), so make one CI task sqlite-only. Obviously this removes bdb coverage from macOS, but I don't expect this to break very often. ACKs for top commit: fanquake: ACK fad2e0a36a56222ec6284a03f374e80527701d15 - clearly worthwhile having a sqlite only CI given the amount of bugs this has turned up in the past week or so. Tested running the functional tests with a `--without-bdb` build on macOS and Linux. Tree-SHA512: d88ad576bbe974a51a2d115e4102fc1bd73772b7393dfa99700fbfd1bdf5deebbf247e35d09757639649a6ad5b193c0998c7db679301a7c012572dfd54a6a289