Commit Graph

245 Commits

Author SHA1 Message Date
Hennadii Stepanov
7739438811
ci, android: Update NDK up to r23c 2022-05-31 18:45:13 +02:00
Hennadii Stepanov
ca40d6432e
ci: Bump vcpkg to the latest version
Dependency changes:
 - zeromq 4.3.4#4 -> 4.3.4#5
2022-04-13 23:26:23 +02:00
Hennadii Stepanov
5561f17e37
ci: Make Qt configure option change invalidate "msvc_qt_built_cache" 2022-04-13 23:26:14 +02:00
fanquake
372f1a3c25
Merge bitcoin/bitcoin#24753: ci: Add clang-tidy task
fab24f8c35 ci: Add clang-tidy task (MarcoFalke)

Pull request description:

  Fixes #24747

ACKs for top commit:
  fanquake:
    ACK fab24f8c35
  vincenzopalazzo:
    Code Review ACK fab24f8c35

Tree-SHA512: 87a5d67a23d540cea09925a6c186303c1249d4ca244b95940c5214860bf7a849fa12cc4fcf1bb9270b1004407124b3487902969d8ae9d2b14dae1fdfb57cc7e8
2022-04-06 10:10:41 +01:00
MarcoFalke
fab24f8c35
ci: Add clang-tidy task 2022-04-04 11:57:06 +02:00
Pavol Rusnak
ef20add4c9
build, qt: bump Qt5 version to 5.15.3
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-04-01 16:54:38 +02:00
MarcoFalke
ecf692b466
Merge bitcoin/bitcoin#24540: ci: Integrate ccache into MSVC build
3a53927f03 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) (c109e7d51c):
  ![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-29 20:22:48 +02:00
MarcoFalke
faf8c736ba
ci: Use monterey-xcode-13.3 2022-03-28 14:42:29 +02:00
MarcoFalke
fa76d8d4d7
test: Actually print TSan tracebacks 2022-03-15 19:16:35 +01:00
Hennadii Stepanov
3a53927f03
ci: Integrate ccache into MSVC build 2022-03-12 03:20:33 +01:00
Hennadii Stepanov
7ff43e5372
ci: Invalidate vcpkg binary cache if dependencies changed 2022-03-10 08:36:13 +01:00
fanquake
c9ed9927bb
Merge bitcoin/bitcoin#24132: build: Bump minimum Qt version to 5.11.3
956f7322f6 build: Bump minimum Qt version to 5.11.3 (Hennadii Stepanov)
e22d10b936 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 956f7322f6
  fanquake:
    ACK 956f7322f6

Tree-SHA512: 3d652bcdcd990ce785ad412ed70234d4f27743895e535a53ed44b35d4afc3052e066c4c84f417e30bc53d0a3dd9ebed62444c57b7c765cb1e9aa687fbf866877
2022-03-07 14:53:23 +00:00
Hennadii Stepanov
68c4a9ed38
ci: Bump vcpkg to the latest version
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-07 08:51:20 +02:00
MarcoFalke
619f8a27ad
Merge bitcoin/bitcoin#24304: [kernel 0/n] Introduce bitcoin-chainstate
2c03cec2ff ci: Build bitcoin-chainstate (Carl Dong)
095aa6ca37 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 2c03cec2ff
  ryanofsky:
    Code review ACK 2c03cec2ff. Just rebase, comments, formatting change since last review
  MarcoFalke:
    re-ACK 2c03cec2ff 🏔

Tree-SHA512: 86e7fb5718caa577df8abc8288c754f4a590650d974df9d2f6476c87ed25c70f923c4db651c6963f33498fc7a3a31f6692b9a75cbc996bf4888c5dac2f34a13b
2022-03-03 19:31:36 +00:00
fanquake
2ab4fbe375
Merge bitcoin/bitcoin#24292: Revert "ci: Run fuzzer task for the master branch only"
fa27745ccb ci: Bump fuzz tasks to jammy (MarcoFalke)
fab8cd5f87 Revert "ci: Run fuzzer task for the master branch only" (MarcoFalke)

Pull request description:

  This reverts commit 5a9e255e5a.

  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 fa27745ccb - we'll see how we go with the 23.x release branch.

Tree-SHA512: d6d08e7dce0884b556c51ff1896aebbbb5a805c22decd58af81a04192d19876978696017b489ec55886ddfd5c022963baaab5f11022369ae5291016826ff8017
2022-02-21 13:12:36 +00:00
fanquake
a1515cdd96
ci: use Ubuntu Jammy for Windows CI
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-18 15:19:05 +00:00
Carl Dong
2c03cec2ff ci: Build bitcoin-chainstate
...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-14 14:54:01 -05:00
Hennadii Stepanov
c49e7db8ae
ci: Follow Cirrus CI docs
See https://github.com/cirruslabs/cirrus-ci-docs/pull/763
2022-02-11 13:52:22 +02:00
MarcoFalke
fa27745ccb
ci: Bump fuzz tasks to jammy
This gives them a newer clang version, which may have more sanitizers
available.
2022-02-08 20:23:21 +01:00
MarcoFalke
fab8cd5f87
Revert "ci: Run fuzzer task for the master branch only"
This reverts commit 5a9e255e5a.
2022-02-08 20:18:10 +01:00
Hennadii Stepanov
e22d10b936
ci: Switch from bionic to buster
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-05 23:53:37 +02:00
MarcoFalke
fa5457e64a
ci: Bump CentOS 8 image 2022-02-01 10:13:25 +01:00
fanquake
446e73cc0b
build: use macOS 11 SDK (Xcode 12.2)
This should be sufficient to support building for Apple ARM when
cross-compiling.
2022-01-26 17:28:16 +08:00
Hennadii Stepanov
d04f68d99c
ci: Update Cirrus CI task name
Missed in bitcoin/bitcoin#22815.
2022-01-03 18:52:40 +02:00
MarcoFalke
20aea4945d
Merge bitcoin/bitcoin#23797: ci: Use Cirrus "greedy" flag to use idle CPU time when available
cfeb1942bc 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-20 12:02:20 +01:00
Luke Dashjr
cfeb1942bc ci: Use Cirrus "greedy" flag to use idle CPU time when available
MAKEJOBS limited for MSan to avoid excessive RAM usage
2021-12-18 17:32:25 +00:00
Hennadii Stepanov
34fd25eaf0
ci: Use system sqlite in native macOS task 2021-12-18 14:03:46 +02:00
Hennadii Stepanov
836d02722c
ci: Bump the macOS image to the latest Monterey 2021-12-18 14:02:57 +02:00
MarcoFalke
d5724b8c6a
Merge bitcoin/bitcoin#23682: ci: Make macOS native task sqlite only
fad2e0a36a 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 fad2e0a36a - 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
2021-12-10 09:13:21 +01:00
MarcoFalke
fad2e0a36a
ci: Make macOS native task sqlite only 2021-12-06 12:03:26 +01:00
Hennadii Stepanov
78a6bc6919
build, qt: Use Android NDK r23 LTS 2021-12-05 03:00:02 +02:00
Hennadii Stepanov
c0a1c3ca08
ci: Bump Qt to 5.15.2 in the native Windows task 2021-12-03 14:07:12 +08:00
Hennadii Stepanov
6c7b8837d3
ci: Always run merge_base_script first for consistency 2021-11-25 21:23:43 +02:00
Hennadii Stepanov
3ad5ace351
ci: Revamp Android SDK cache, and update it timely 2021-11-25 21:23:34 +02:00
Hennadii Stepanov
e988bc7f2e
ci: Make macOS SDK cache independent, and update it timely 2021-11-25 20:39:07 +02:00
fanquake
d0fe9c2180
build: don't check for deprecated berkeley-db4 package
Fixes:
```bash
checking for brew... brew
Warning: Use berkeley-db@4 instead of deprecated berkeley-db4
```
2021-11-21 19:34:43 +08:00
MarcoFalke
fa459220c7
ci: Rework ci task names 2021-11-16 13:30:01 +01:00
fanquake
ad09c287cb
Merge bitcoin/bitcoin#23504: ci: Replace soon EOL hirsute with jammy
fafa66e424 ci: Replace soon EOL hirsute with jammy (MarcoFalke)

Pull request description:

  `hirsute` will be EOL in about 1.5 months, at which point the package servers may be shut down. Avoid this by hopping to the next LTS release 22.04 (Jammy Jellyfish).

  While the release is currently in development, it seems unlikely that anything will break for us. I am doing the hirsute->jammy hop to avoid a hirsute->impish->jammy hop, but if anything does break, we can fall back to that "double hop".

ACKs for top commit:
  fanquake:
    ACK fafa66e424
  Zero-1729:
    crACK fafa66e424

Tree-SHA512: a3626b72519c7f54f260477d04265321af7aefe25cc2a7d653dba77f79caca10db3a6aa4249a934184dcdc99832f6b4c6e50330d7630e58720ab0aba3624ab8a
2021-11-16 16:11:13 +08:00
Hennadii Stepanov
23c3dcb4e7
ci: Drop --failfast in functional tests on native Windows CI task 2021-11-15 11:26:05 +02:00
MarcoFalke
fafa66e424
ci: Replace soon EOL hirsute with jammy 2021-11-13 11:19:36 +01:00
Hennadii Stepanov
f778845d97
ci: Add vcpkg tools cache
This change avoids downloading of the cached vcpkg tools that could fail
accidentally, and it makes CI task more robust.
2021-10-22 14:33:04 +03:00
Hennadii Stepanov
e8692cf2c1
ci: Improve vcpkg binary cache settings
This change comes with two improvements:
1) using the VCPKG_DEFAULT_BINARY_CACHE variable drops dependency on
vcpkg default cached archives location, and improves readability
2) two obvious cases when binary cache is invalidated are defined, that
guaranties it won't grow boundlessly when, for example, vcpkg has being
updated.
2021-10-20 22:16:12 +03:00
Hennadii Stepanov
b00646bc77
ci, refactor: Rename VCPKG_TAG variable and vcpkg_cache script
The VCPKG_TAG variable renamed to CI_VCPKG_TAG to prevent any possible
name clash with vcpkg-specific variables.

The vcpkg_cache script renamed into more meaningful one.
2021-10-20 22:16:12 +03:00
Hennadii Stepanov
13ae56864e
ci: Bump vcpkg release tag
In the new release the "Binary Caching" and "Manifest Mode" features are
available by default.
2021-10-19 21:33:02 +03:00
MarcoFalke
146831f80a
ci: Reduce Windows memory for faster scheduling 2021-10-07 16:17:09 +03:00
fanquake
a68de12c0e
Merge bitcoin/bitcoin#22890: doc: Replace a link to Qt precompiled binaries with compile instructions
6bc4398937 doc: Suggest using jom instead of nmake (Hennadii Stepanov)
c4139f06a9 doc: Replace a link to Qt precompiled binaries with compile instructions (Hennadii Stepanov)
5e42f2ad26 build: Make <QtBaseDir> default name Qt and VS versions agnostic (Hennadii Stepanov)

Pull request description:

  This PR replaces a [link to Qt precompiled binaries](https://github.com/sipsorcery/qt_win_binary/releases) with compile instructions that allow users to self-compile static Qt package which is required for building Bitcoin Core with Visual Studio.

ACKs for top commit:
  sipsorcery:
    ACK 6bc4398937.

Tree-SHA512: 0c91536e51177ec2ed437614cb37b3fd1dccce856548c22307359da68200433971fd97cd8a537b0856cfccc521ac50d61801a78cb5275b818829ee7b43bc7d6a
2021-10-07 08:39:52 +08:00
MarcoFalke
fa87230ec5
ci: Enable extended tests on native Windows 2021-09-28 20:12:36 +02:00
Hennadii Stepanov
4befc8f1c0
ci: Enable feature_asmap.py test on native Windows 2021-09-27 15:48:58 +03:00
MarcoFalke
fa01f22e6e
test: Add missing re.escape() to feature_addrman test 2021-09-27 09:52:41 +02:00
Hennadii Stepanov
097ac74fd2
ci: Add more functional tests to the native Windows task 2021-09-24 20:56:15 +03:00
Hennadii Stepanov
8e08a4b6ce
ci: Increase the dynamic port range to the maximum on native Windows
This change should mitigate "OSError: [WinError 10048] Only one usage of
each socket address (protocol/network address/port) is normally
permitted".
2021-09-24 19:51:45 +03:00
fanquake
8f022a59b8
Merge bitcoin/bitcoin#22993: build: set OSX_MIN_VERSION to 10.15
a43b8e9555 build: set OSX_MIN_VERSION to 10.15 (fanquake)

Pull request description:

  Taken out of #20744, as splitting up some of the build changes was mentioned [here](https://github.com/bitcoin/bitcoin/pull/22937#discussion_r707303172).

  This is required to use `std::filesystem` on macOS, as support for it only landed in the libc++.dylib shipped with 10.15. So if we want to move to using `std::filesystem` for `23.0`, this bump is required.

  See also: https://developer.apple.com/documentation/xcode-release-notes/xcode-11-release-notes

  > Clang now supports the C++17 \<filesystem\> library for iOS 13, macOS 10.15, watchOS 6, and tvOS 13.

  macOS 10.15 was released in October 2019. macOS OS's seem to have a life of about 3 years, so it's possible that 10.14 will become officially unsupported by the end of 2021 and prior to the release of 23.0.

  Guix builds:
  ```bash
  bash-5.1# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
  abc8b749be65f1339dcdf44bd1ed6ade2533b8e3b5030ad1dde0ae0cede78136  guix-build-a43b8e955558/output/dist-archive/bitcoin-a43b8e955558.tar.gz
  1edcc301eb4c02f3baa379beb8d4c78e661abc24a293813bc9d900cf7255b790  guix-build-a43b8e955558/output/x86_64-apple-darwin19/SHA256SUMS.part
  e9dbb5594a664519da778dde9ed861c3f0f631525672e17a67eeda599f16ff44  guix-build-a43b8e955558/output/x86_64-apple-darwin19/bitcoin-a43b8e955558-osx-unsigned.dmg
  11b23a17c630dddc7594c25625eea3de42db50f355733b9ce9ade2d8eba3a8f3  guix-build-a43b8e955558/output/x86_64-apple-darwin19/bitcoin-a43b8e955558-osx-unsigned.tar.gz
  257ba64a327927f94d9aa0a68da3a2695cf880b3ed1a0113c5a966dcc426eb5e  guix-build-a43b8e955558/output/x86_64-apple-darwin19/bitcoin-a43b8e955558-osx64.tar.gz
  ```

ACKs for top commit:
  hebasto:
    ACK a43b8e9555
  jarolrod:
    ACK a43b8e9

Tree-SHA512: 9ac77be7cb56c068578860a3b2b8b7487c9e18b71b14aedd77a9c663f5d4bb19756d551770c02ddd12f1797beea5757b261588e7b67fb53509bb998ee8022369
2021-09-21 15:37:12 +08:00
MarcoFalke
fac67b393b
ci: Set --nocleanup for Windows functional tests
This avoids intermittent issues in the CI Task when a test passes
successfully. For example:

PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\ContainerAdministrator\\AppData\\Local\\Temp\\test_runner_₿_🏃_20210920_072037\\feature_versionbits_warning_89\\alert.txt'
2021-09-20 09:41:41 +02:00
fanquake
de2af19dc8
Merge bitcoin/bitcoin#22987: qa: Fix "RuntimeError: Event loop is closed" on Windows
357f0c7233 ci: Enable more functional tests on Windows MSVC task (Hennadii Stepanov)
f55932678f qa: Fix "RuntimeError: Event loop is closed" on Windows (Hennadii Stepanov)

Pull request description:

  On master (2161a05855), running functional tests that use the P2P interface ends with an error:
  ```
  RuntimeError: Event loop is closed
  ```

  This PR fixes this bug, and enables more functional tests on Windows MSVC CI task.

  More details about bugfix:
  - [What’s New In Python 3.7](https://docs.python.org/3/whatsnew/3.7.html#asyncio)
  - https://bugs.python.org/issue33792
  - actual [change](https://docs.python.org/3.8/library/asyncio-policy.html#asyncio.WindowsSelectorEventLoopPolicy) done in Python 3.8

  Excluded tests, that are listed in the `EXCLUDE_TESTS` environment variable, need more thorough investigation to be enabled.

ACKs for top commit:
  MarcoFalke:
    review ACK 357f0c7233 🌆

Tree-SHA512: d0ba85be81d55c934959ce7402a9c726598125e9751a1de179d16759d0e8b8a915de879c3a62c12d3564c5e0d9649ebd86963744449626efaa42d9eaa99ad3d0
2021-09-18 16:49:19 +08:00
fanquake
a43b8e9555
build: set OSX_MIN_VERSION to 10.15
This is required to use std::filesystem on macOS as support for it only
landed in the libc++ dylib shipped with 10.15.

See also: https://developer.apple.com/documentation/xcode-release-notes/xcode-11-release-notes

Clang now supports the C++17 <filesystem> library for iOS 13, macOS 10.15, watchOS 6, and tvOS 13.
2021-09-16 17:50:19 +08:00
fanquake
252d1a70fb
ci: use Debian Bullseye in ARM CI
This works around an issue when trying to use `std::filesystem::remove_all`
with the ARM GCC on Buster. Has been split out of #20744.

See comments starting here:
https://github.com/bitcoin/bitcoin/pull/20744#issuecomment-810279549.
Also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93201.
2021-09-16 16:01:31 +08:00
Hennadii Stepanov
357f0c7233
ci: Enable more functional tests on Windows MSVC task 2021-09-15 20:52:08 +03:00
W. J. van der Laan
020c2b7609
Merge bitcoin/bitcoin#22923: test: Switch multiprocess to clang i686 build
fa309ee61c bench: Fix 32-bit compilation failure in addrman bench (MarcoFalke)
fae0295a79 ci: Switch multiprocess to i686 build (MarcoFalke)

Pull request description:

  Building for i686 with clang helps to catch bugs early for:
  * The OSS-Fuzz i686 clang libFuzzer build
  * The arm 32-bit native clang build

  Fixes  #22889

ACKs for top commit:
  hebasto:
    ACK fa309ee61c

Tree-SHA512: 581820d319aae2fcd4dd44979ee3d4164a575f0438476890aa2a7447f1392a5da26766cd6ab954530499b54f66eec2417bdeefdd7efb19bc27dd679cd2b9d0ce
2021-09-09 15:52:26 +02:00
fanquake
17e27dd000
Merge bitcoin/bitcoin#22912: ci: Fix merge_script in MSVC task
f78cc90524 ci: Fix merge_script in MSVC task (Hennadii Stepanov)

Pull request description:

  The new `merge_script` in the MSVC build task does not really exit early when the task is triggered by a non-pr.

  In the current code e4aa9b15b9/.cirrus.yml (L104)

  the `exit 0` command exits from the PowerShell call, not the recent `merge_script`. This cause the next lines e4aa9b15b9/.cirrus.yml (L105-L107) are executed unconditionally.

  Here is an excerpt from [CI task log](https://api.cirrus-ci.com/v1/task/4578647416766464/logs/merge.log) for the ["Merge #22915: Remove confusing CAddrDB " commit](896649996b):
  ```
  ...
  C:\Users\ContainerAdministrator\AppData\Local\Temp\cirrus-ci-build>call powershell.exe -NoLogo -EncodedCommand ZwBpAHQAIAByAGUAcwBlAHQAIAAtAC0AaABhAHIAZAA=
  HEAD is now at 896649996 Merge bitcoin/bitcoin#22915: Remove confusing CAddrDB

  C:\Users\ContainerAdministrator\AppData\Local\Temp\cirrus-ci-build>if 0 NEQ 0 exit /b 0

  C:\Users\ContainerAdministrator\AppData\Local\Temp\cirrus-ci-build>call powershell.exe -NoLogo -EncodedCommand aQBmACAAKAAkAGUAbgB2ADoAQwBJAFIAUgBVAFMAXwBQAFIAIAAtAGUAcQAgACQAbgB1AGwAbAApACAAewAgAGUAeABpAHQAIAAwADsAIAB9AA==

  C:\Users\ContainerAdministrator\AppData\Local\Temp\cirrus-ci-build>if 0 NEQ 0 exit /b 0

  C:\Users\ContainerAdministrator\AppData\Local\Temp\cirrus-ci-build>call powershell.exe -NoLogo -EncodedCommand ZwBpAHQAIABmAGUAdABjAGgAIAAkAGUAbgB2ADoAQwBJAFIAUgBVAFMAXwBSAEUAUABPAF8AQwBMAE8ATgBFAF8AVQBSAEwAIAAkAGUAbgB2ADoAQwBJAFIAUgBVAFMAXwBCAEEAUwBFAF8AQgBSAEEATgBDAEgA
  From https://github.com/bitcoin/bitcoin
   * branch                HEAD       -> FETCH_HEAD

  C:\Users\ContainerAdministrator\AppData\Local\Temp\cirrus-ci-build>if 0 NEQ 0 exit /b 0

  C:\Users\ContainerAdministrator\AppData\Local\Temp\cirrus-ci-build>call powershell.exe -NoLogo -EncodedCommand ZwBpAHQAIABtAGUAcgBnAGUAIABGAEUAVABDAEgAXwBIAEUAQQBEAA==
  Already up to date.

  C:\Users\ContainerAdministrator\AppData\Local\Temp\cirrus-ci-build>if 0 NEQ 0 exit /b 0
  ```

  This PR fixes this issue, and makes `merge_script` log more readable.

ACKs for top commit:
  MarcoFalke:
    Concept ACK f78cc90524

Tree-SHA512: c88b115f99f9019a4100a10df051e32c05487612c13105d10873b9cf38965eeca731604d36610ae750cb1f93ba77ce97dca7599fe4984181210d0753be4eb9a0
2021-09-09 16:08:48 +08:00
MarcoFalke
fa0c194db3
cirrus: Enable tests on windows 2021-09-08 20:43:23 +02:00
MarcoFalke
fae0295a79
ci: Switch multiprocess to i686 build 2021-09-08 20:17:04 +02:00
Hennadii Stepanov
5e42f2ad26
build: Make <QtBaseDir> default name Qt and VS versions agnostic
This change allows users to not patch `common.qt.init.vcxproj` to fit
their Qt and Visual Studio versions. Also it simplifies code base
maintaining.

To specify a non-default path, the QTBASEDIR environment variable can be
used.
2021-09-07 22:25:38 +03:00
Hennadii Stepanov
f78cc90524
ci: Fix merge_script in MSVC task 2021-09-07 20:30:54 +03:00
Hennadii Stepanov
3a68546fd0
ci: Build and cache static Qt instead of downloading a pre-built one 2021-09-07 16:49:35 +03:00
Hennadii Stepanov
64015eb014
ci: Add missed comments and test_bitcoin.exe command line option 2021-09-07 13:31:28 +03:00
Hennadii Stepanov
97292b1914
ci: Drop AppVeyor CI integration 2021-09-07 06:12:53 +03:00
Hennadii Stepanov
1fb70793b2
ci: Add Windows task to Cirrus CI 2021-09-07 06:12:51 +03:00
MarcoFalke
fa880b10d6
ci: Unconditionally set the global git author name in cirrys.yml
The author is also needed for the verify-commits.py script.
2021-08-26 11:17:07 +02:00
MarcoFalke
192a959b65
Merge bitcoin/bitcoin#22749: ci: Run arm task on arm64 hardware
fa35efa84b ci: Run arm task on arm64 hardware (MarcoFalke)

Pull request description:

  It will still run cross-compilation to armhf, but run the binaries on the hardware itself, not qemu.

  There shouldn't be any significant difference, other than maybe a slight speedup.

ACKs for top commit:
  hebasto:
    re-ACK fa35efa84b

Tree-SHA512: d03bb2b55d0a6b5021243eedff6e143f4fad03a1a8913000c2c5c74665e4bb1c77cb30aa112dbddbc0bb7c645bec18f6b8b8ba91049587b464bbe5ec07dd46bd
2021-08-20 11:21:15 +02:00
fanquake
ff1e633897
Merge bitcoin/bitcoin#22730: ci: Run fuzzer task for the master branch only
5a9e255e5a ci: Run fuzzer task for the master branch only (Hennadii Stepanov)

Pull request description:

  https://github.com/bitcoin/bitcoin/pull/22629#issuecomment-896454270:
  > I think we need to decide whether running the fuzzer CI in any branch other than master is something we want to be doing / maintaining. This seems pretty unsustainable unless we at least make changes in regards to the fuzz inputs being used by the different branches. I'm pretty sure Marco has mentioned this before.

  This PR makes CI ignore fuzz tests by forcing `RUN_FUZZ_TESTS=false` for all cases when it is not the master branch or a PR based on it.

  See #22731 as a demo for the 22.x branch.

ACKs for top commit:
  MarcoFalke:
    cr ACK 5a9e255e5a no opinion on the concept, also didn't test
  fanquake:
    ACK 5a9e255e5a - didn't test other than to look at #22731.

Tree-SHA512: 48f8f02f1814d4f15293a8804b76d544a08784ea7acd930b5c6d4608564d30aa5a608b1a511386ffda6975feec700c1bbeb86a30a75a7e48a1c5b167a227dbdd
2021-08-20 15:17:01 +08:00
Hennadii Stepanov
e9cf506ab0
ci: Make git available for all merge commits 2021-08-20 01:33:04 +03:00
Hennadii Stepanov
040e4deddc
scripted-diff: Rename template to avoid CI configuration parsing warning
-BEGIN VERIFY SCRIPT-
sed -i 's/\btask_template/main_template/' .cirrus.yml
sed -i 's/\bTASK_TEMPLATE/MAIN_TEMPLATE/' .cirrus.yml
-END VERIFY SCRIPT-
2021-08-20 01:33:04 +03:00
MarcoFalke
fa35efa84b
ci: Run arm task on arm64 hardware 2021-08-19 21:09:44 +02:00
Hennadii Stepanov
5a9e255e5a
ci: Run fuzzer task for the master branch only 2021-08-18 20:18:32 +03:00
Hennadii Stepanov
f52a72af56
ci: Invalidate depends caches when sources have been changed 2021-08-18 19:32:01 +03:00
Hennadii Stepanov
939640f87e
ci: Reorder scripts to make git available before depends_sources_cache 2021-08-16 12:48:24 +03:00
MarcoFalke
faa8dfd6a1
ci: Bump macOS image to big-sur-xcode-12.5
This also removes the "brew update" added in commit
b7381552cd.
2021-06-02 10:03:38 +02:00
MarcoFalke
fa0bfc5239
ci: Bump multiprocess memory 2021-05-25 16:57:29 +02:00
MarcoFalke
fa397a6a9c
ci: Bump cirrus fuzz CPUs to avoid timeout 2021-05-12 18:26:37 +02:00
MarcoFalke
fa44f5119a
ci: Clarify that previous_releases task is using DEBUG 2021-05-01 11:17:59 +02:00
MarcoFalke
faeabef4f3
ci: Enable D_GLIBCXX_DEBUG for multiprocess task 2021-04-30 08:33:07 +02:00
MarcoFalke
00004565cc
ci: Use clang-12 for asan task
Changes from Ubuntu Focal to Hirsute to get clang-12.
Generally, it can be expected that more recent compilers have
better support for sanitizers.
2021-04-20 12:46:03 +02:00
MarcoFalke
8c867ed4ec
Merge #21675: ci: Only cache depends/sdk-sources for macos/apk task in cirrus
11115c8ee5 ci: Only cache depends/sdk-sources for macos/apk task in cirrus (MarcoFalke)

Pull request description:

  Only macos needs the sdk-sources, so move it there (and remove it from showing up in the other tasks)

ACKs for top commit:
  hebasto:
    ACK 11115c8ee5

Tree-SHA512: 9e80e74016052e7b00314e191acc84c5e400bbf2e0d93ee7b1494b6be99e671cc326ddaa1fbded82f0912a9e338ad1891019dce78199b08c5180af42cb59729a
2021-04-14 16:43:00 +02:00
MarcoFalke
11115c8ee5
ci: Only cache depends/sdk-sources for macos/apk task in cirrus 2021-04-14 09:15:42 +02:00
MarcoFalke
fadbd99885
test: Remove spurious double lock tsan suppressions by bumping to clang-12 2021-04-13 19:54:39 +02:00
MarcoFalke
c1f480fb23
Merge #21653: ci: Fix previous releases cache order
fa4f0b301b ci: Fix previous releases cache order (MarcoFalke)

Pull request description:

ACKs for top commit:
  hebasto:
    ACK fa4f0b301b

Tree-SHA512: 997e46e5432abb1f24c0762dab6366e173a8afd13a02d655691dbe8d6f532f4c5748e0874a7d158d7e171b2991ed2ce9cfc1982a5d9cd30d1dbb30f43452025d
2021-04-13 13:18:48 +02:00
Hennadii Stepanov
b7381552cd
ci: Fix macOS brew install command
Details: https://github.com/Homebrew/discussions/discussions/691
2021-04-12 22:30:55 +03:00
MarcoFalke
fa4f0b301b
ci: Fix previous releases cache order
The order was broken in commit ffff4e7373
2021-04-11 13:55:33 +02:00
MarcoFalke
fa41a91735
ci: Run self-hosted ci 2021-04-09 15:56:56 +02:00
MarcoFalke
fa52a40f0e
ci: Make cirrus cache folders relative to cirrus base dir 2021-04-09 15:56:29 +02:00
MarcoFalke
fa278412a0
ci: Restart docker before run
Also, add setting for persistent worker in .cirrus.yml
2021-04-09 15:56:23 +02:00
MarcoFalke
fad4f48e07
ci: [refactor] Create setting for ephemeral config in .cirrus.yml
This allows easier switching between self-hosted runners and the
community cluster. Also, named variables can be documented better.
2021-04-09 15:56:13 +02:00
MarcoFalke
fa212391ce
cirrus: Use SSD cluster for speedup 2021-04-08 11:28:06 +02:00
fanquake
de3ae78eff
ci: increase CPU count of sanitizer job to increase memory limit
According to the docs,
https://cirrus-ci.org/guide/linux/#linux-containers, "For each CPU you
can't get more than 4G of memory.", thus if we want this job to have
24GB of memory, we need to increase the CPU count to 6.
2021-04-06 08:40:24 +08:00
fanquake
e4a2918238
Merge #21542: ci: Bump macOS VM image to the latest version
b8e76479ce ci: Bump macOS VM image to the latest version (Hennadii Stepanov)

Pull request description:

  On Cirrus CI bump macOS VM from Catalina to Big Sur.

ACKs for top commit:
  fanquake:
    ACK b8e76479ce - I'm always going to question bumping things for the sake of it/when there's no reasoning given. In this case, moving from building on macOS 10.x to 11.x shouldn't really lose us any coverage, and may turn up potential macOS quirks a bit earlier.

Tree-SHA512: ab2daee194683ab0553328020fd2fcb918160f466cd380c542e1a9b44f5bea3664fb40b032f1b611ee0107b0efbe278230e067316e2373c3cb0470b205dd2f9d
2021-03-31 13:10:20 +08:00
MarcoFalke
fa52d7d3ad
cirrus: Add missing depends_sources_cache to Android task
This cache entry is required for completeness. The file
src/Makefile.qt.include needs it in this line:
 QT_BASE_PATH = $(shell find ../depends/sources/ -maxdepth 1 -type f -regex ".*qtbase.*\.tar.xz")

This cache entry is tied to the depends_built_cache cache entry. Either
both are present and cached, or neither of them is. Otherwise, the build
will fail.
2021-03-28 20:06:39 +02:00
MarcoFalke
ffff4e7373
cirrus: Only cache releases when needed
This does not change behavior, but removes unneeded and empty cache
instructions for tasks that don't need them.
2021-03-28 20:06:36 +02:00
MarcoFalke
fa97a17ac3
ci: Bump Android cross-build to Ubuntu Focal
This does not change behavior, but bumping to Focal now means it doesn't
have to be done later when Bionic is no longer used and EOL.
2021-03-28 20:05:46 +02:00
Hennadii Stepanov
b8e76479ce
ci: Bump macOS VM image to the latest version 2021-03-28 20:29:46 +03:00
Igor Cota
ba46adaa1a CI: add Android APK build to cirrus 2021-03-21 22:33:35 +01:00
MarcoFalke
fa272dfdff
ci: Properly bump to focal for win cross build 2021-02-09 21:37:14 +01:00
fanquake
ac24af453d
ci: use Ubuntu Focal for macOS cross build 2021-02-09 13:58:59 +08:00
MarcoFalke
faff3991a9
ci: Fuzz with integer sanitizer 2021-01-26 12:50:43 +01:00
Hennadii Stepanov
e28f9be87a
ci: Add libnatpmp-dev package to some builds 2021-01-07 18:07:10 +02:00
MarcoFalke
faeb40bee3
ci: Install missing lint packages
Also merge script into ci/lint_run_all.sh because env vars weren't
exported properly
2020-12-18 07:40:57 +01:00
MarcoFalke
9b28bd73a3
Merge #20691: ci, doc: Travis CI features and mentions cleanup
95487b0553 doc: Drop mentions of Travis CI as it is no longer used (Hennadii Stepanov)
09d105ef0f ci: Drop travis_fold feature as Travis CI is no longer used (Hennadii Stepanov)

Pull request description:

  As Travis CI is no longer used, this PR:
  - drops `travis_fold` feature
  - drops mentions of Travis CI in docs

ACKs for top commit:
  MarcoFalke:
    ACK 95487b0553

Tree-SHA512: 2e259bb8b1e37bcefc1251737bb2716f06ddb57c490010b373825c4e70f42ca38efae69a2f63f21f577d7cee3725b94097bdddbd313f8ebf499281cf97c53cef
2020-12-18 07:32:28 +01:00
Hennadii Stepanov
09d105ef0f
ci: Drop travis_fold feature as Travis CI is no longer used 2020-12-17 22:02:12 +02:00
MarcoFalke
facf5e37f6
ci: Only use credits for pull requests to the main repo 2020-12-17 09:30:37 +01:00
MarcoFalke
6f2ca726ce
Merge #20658: ci: Move linter task to cirrus
4045a6722c ci: Use cpu=1 for linter (Dhruv Mehta)
739d39022d ci: Move linter task to cirrus (Dhruv Mehta)

Pull request description:

  Solves #20467: Move linter to Cirrus-CI as Travis-CI.org is shutting down

ACKs for top commit:
  MarcoFalke:
    ACK 4045a6722c

Tree-SHA512: 9aa7487ac86c91fc68bb584d29134e304dbd46702514a5d47d1ef0de6b877d96d42b7589870fc67ad9a31f5d3a789728446da4418688f336111a9ba0f8de5feb
2020-12-17 09:05:15 +01:00
Dhruv Mehta
4045a6722c ci: Use cpu=1 for linter 2020-12-16 17:34:25 -08:00
Dhruv Mehta
739d39022d ci: Move linter task to cirrus 2020-12-15 10:13:55 -08:00
MarcoFalke
faf2c6e32e
cirrus: Schedule one task with paid credits for faster CI feedback 2020-12-10 15:04:54 +01:00
Hennadii Stepanov
667b6a29df
ci: Adjust Cirrus CI task names (follow up)
"no depends" implies "only system libs".
2020-12-04 23:17:31 +02:00
MarcoFalke
fa5c4f12f5
ci: Adjust cirrus ci task names 2020-12-02 11:52:03 +01:00
fanquake
2b356117e9
ci: no-longer exclude feature_block in TSAN job
The TSAN job is now running on Cirrus.
Increase the allocated memory to the maximum allowed.
2020-12-02 16:42:07 +08:00
MarcoFalke
fa7a4385d0
ci: Fix doc typos in .cirrus.yml 2020-11-23 17:11:05 +01:00
MarcoFalke
fa73674738
ci: Run i686 centos ci config on cirrus 2020-11-23 17:09:12 +01:00
MarcoFalke
fa1f949a4d
ci: Run nowallet ci config on cirrus 2020-11-23 17:08:48 +01:00
fanquake
a52ecc936a
build: set minimum supported macOS to 10.14 2020-11-18 21:46:09 +08:00
Luke Dashjr
20e491ddcb CI/Cirrus: Skip merge_base step for non-PRs
CIRRUS_BASE_BRANCH is a PR-specific variable and undocumented on non-PR builds.
In practice (at the moment), it seems to be HEAD, which in private repositories can be pretty much anything, causing CI to fail if it can't be cleanly merged.

By checking CIRRUS_PR first, we can reliably do CI builds of branches outside PRs.
2020-11-14 17:51:59 +00:00
MarcoFalke
fa92cf29d9
ci: Remove redundant valgrind fuzz task 2020-11-11 09:03:11 +01:00
MarcoFalke
77777c8b5e
ci: Run windows ci config on cirrus 2020-11-09 10:16:45 +01:00
MarcoFalke
3333d6942e
ci: Run macos ci config on cirrus 2020-11-09 10:15:59 +01:00
MarcoFalke
fa8b1114e6
ci: Run arm ci config on cirrus 2020-11-09 10:15:50 +01:00
MarcoFalke
66667acc53
cirrus: Skip tasks on the gui repo main branch 2020-11-06 10:05:30 +01:00
MarcoFalke
fa8e494554
ci: Run ci configs on cirrus 2020-11-03 20:26:58 +01:00
MarcoFalke
faf2999e25
cirrus: Use kvm to avoid spurious CI failures in the default virtualization cluster 2020-10-08 14:47:21 +02:00
MarcoFalke
fa8e148714
ci: Double tsan CPU and Memory to avoid global timeout 2020-09-05 14:02:55 +02:00
MarcoFalke
fa0538e94d
ci: Set cirrus RAM to 8GB 2020-08-17 11:53:31 +02:00
MarcoFalke
fa41810d0e
ci: Run valgrind fuzzer on cirrus 2020-08-17 11:52:02 +02:00
MarcoFalke
fa8e6df282
ci: Run tsan ci config on cirrus 2020-07-02 12:22:39 -04:00
MarcoFalke
fa05f44893
ci: Upgrade most ci configs to focal 2020-06-19 10:44:11 -04:00
MarcoFalke
fa2eb3d5d6
ci: Run asan ci config on cirrus 2020-06-18 14:33:54 -04:00
MarcoFalke
fa93527738
cirrus: Clear dummy task 2020-06-18 14:33:31 -04:00
MarcoFalke
fac2eeeb9d
cirrus: Remove no longer needed install step 2020-05-30 08:32:29 -04:00
MarcoFalke
fa35c34df7
Remove unused ci configs that have been moved elsewhere
They have been moved to https://github.com/MarcoFalke/btc_nightly
running on Cirrus CI https://cirrus-ci.com/build/6249975761862656
2020-05-10 07:51:31 -04:00
MarcoFalke
fa50d11dd1
appveyor: Disable functional tests for now
Also add a draft for a Windows build on cirrus. The draft can be
finished later.
2020-04-14 09:15:18 -04:00
MarcoFalke
fae760f2b2
cirrus: Bump freebsd to 12.1 2020-04-12 08:50:05 -04:00
Hennadii Stepanov
6136a96cdf
ci: Rename RUN_CI_ON_HOST to DANGER_RUN_CI_ON_HOST 2020-04-09 02:59:37 +03:00
fanquake
397dbae070
ci: remove OpenSSL installation 2019-11-18 08:56:48 -05:00
MarcoFalke
fafa064d2a
ci: Remove ccache requirement on the host
ccache is only needed to create the cache dir on the host, if it didn't
already exist. The same can be achieved with mkdir, so just use that
instead.
2019-10-24 18:37:38 -04:00
MarcoFalke
fa69588537
test: Make PORT_MIN in test runner configurable 2019-09-19 12:03:40 -04:00
MarcoFalke
fa6cbdc3c9
ci: Use ./ci/ on non-travis host 2019-08-15 11:13:09 -04:00
MarcoFalke
fa00326158
ci: Run extended tests 2019-06-20 14:52:36 -04:00
MarcoFalke
fa1d400003
cirrus ci: Inital config 2019-02-03 10:24:39 -05:00