Commit Graph

237 Commits

Author SHA1 Message Date
MarcoFalke fa91bf2559
ci: Skip git install if it is already installed
This also avoids the sudo requirement for self-hosted CI runners.
2024-02-16 16:06:45 +01:00
MarcoFalke fa0c594b33
ci: Rename tasks (previous releases, macOS cross) 2024-01-11 17:32:43 +01:00
MarcoFalke fad2392c58
ci: Use Ubuntu 24.04 Noble for asan 2023-12-04 12:29:02 +01:00
fanquake 6342348072
Merge bitcoin/bitcoin#28076: util: Replace std::filesystem with util/fs.h
bbbbdb0cd5 ci: Add filesystem lint check (MarcoFalke)
fada2f9110 refactor: Replace <filesystem> with <util/fs.h> (MarcoFalke)

Pull request description:

  Using `std::filesystem` is problematic:

  * There is a `fs` namespace wrapper for it. So having two ways to achieve the same is confusing.
  * Not using the `fs` wrapper is dangerous and buggy, because it disables known bugs by deleting problematic functions.

  Fix all issues by removing use of it and adding a linter to avoid using it again in the future.

ACKs for top commit:
  TheCharlatan:
    ACK  bbbbdb0cd5
  fanquake:
    ACK bbbbdb0cd5 🦀

Tree-SHA512: 0e2d49742b08eb2635e6fce41485277cb9c40fe20b81017c391d3472a43787db1278a236825714ca1e41c9d2f59913865cfb0c649e3c8ab1fb598c849f80c660
2023-11-13 14:10:54 +00:00
fanquake 5f0bf2ef69
ci: win64 task does use boost:process
It passes `--enable-external-signer`.
2023-11-09 10:50:32 +00:00
MarcoFalke fa2843eba4
ci: Bump asan 2023-10-12 13:07:06 +02:00
MarcoFalke bbbbdb0cd5
ci: Add filesystem lint check 2023-09-14 18:58:44 +02:00
fanquake df5af114df
Merge bitcoin/bitcoin#28353: ci: Remove /ro_base bind mount, Remove LC_ALL=C from s390x task
fa70cbd969 ci: Remove unused TEST_RUNNER_ENV="LC_ALL=C" from s390x task (MarcoFalke)
fa33354dcb ci: Remove /ro_base bind mount (MarcoFalke)
fa0df9d4c4 doc: Remove sudo from command that is already run as root (MarcoFalke)

Pull request description:

  Remove some CI stuff no longer needed.

ACKs for top commit:
  fanquake:
    ACK  fa70cbd969 - did not test the s390x job.

Tree-SHA512: 3a6ed0cfc855a92c2f834e59494c0a19a5647510247aece5e40a1aa78074894fe7454e684a1ea1f8f0662c50ac1caf2e390398b0fcfbf81544e6488fa9b8915e
2023-08-30 16:23:39 +01:00
MarcoFalke fa0df9d4c4
doc: Remove sudo from command that is already run as root 2023-08-27 22:49:59 +02:00
Hennadii Stepanov 6a43372980
ci: Run "Win64 native" job on GitHub Actions 2023-08-25 13:50:04 +01:00
MarcoFalke fa8e89d5e4
ci: Remove distro-name from task name
The exact distro name should not be important. Also, it is easy to find
out, if needed. Thus, remove it to avoid bloat and maintenance overhead
having to keep it in sync.
2023-08-18 18:06:04 +02:00
MarcoFalke fad006fa0a
ci: Switch remaining tasks to self-hosted
This allows to drop unused templates, such as
cirrus_ephemeral_worker_template_env, or container_depends_template.

Also, ccache_cache, previous_releases_cache, and
base_depends_built_cache can be dropped, because the caching is done in
container volumes on the self-hosted runners.
2023-08-18 18:05:59 +02:00
MarcoFalke fa26387769
ci: Refactor: Remove CI_USE_APT_INSTALL 2023-08-17 13:55:18 +02:00
fanquake d78ff380a2
Merge bitcoin/bitcoin#28214: ci: Move tidy to persistent worker
faaa0794b2 refactor: Remove PERSISTENT_WORKER_* yaml templates (MarcoFalke)
fa1d8955f6 ci: Move tidy to persistent worker (MarcoFalke)

Pull request description:

  Cirrus CI will be capping the free compute soon. For now, switch more tasks to persistent worker, as recommended by Cirrus CI.

  (See slightly related discussion in https://github.com/bitcoin/bitcoin/issues/28098)

  Also, add more docs.

ACKs for top commit:
  hebasto:
    re-ACK faaa0794b2

Tree-SHA512: d83032eeeda7869969aa8504ed5e88089f896da850f97dfb799c4d4f64e6cb9da7973eec9a97b07f646613d1dabd2308dc0055ab6e1062d18bd34a201fcaf6db
2023-08-17 11:21:04 +01:00
MarcoFalke fa193f5dfc
ci: Fix macOS-cross SDK rsync
This should fix the macOS-cross build on Cirrus CI containers.

Locally this was already working, because the SDK was cached in
/ci_container_base/ in the image, which is also the folder used for a
later CI run.

However, on Cirrus CI, when using an image *and* a custom BASE_ROOT_DIR,
the SDK will not be found in /ci_base_install/, nor in BASE_ROOT_DIR.

Fix this by normalizing *all* folders to /ci_container_base/.
2023-08-16 10:30:50 +02:00
Andrew Chow b97b05048d
Merge bitcoin/bitcoin#28187: ci: Run "macOS native x86_64" job on GitHub Actions
9658d0dc17 ci: Run "macOS native x86_64" job on GitHub Actions (Hennadii Stepanov)

Pull request description:

  From https://github.com/bitcoin/bitcoin/issues/28098:
  > Thus, someone would have to sponsor an amount of roughly 5kUSD/mo for those two tasks.

  > If the goal is to stay on a free plan, I think the only option is GitHub Actions CI.

  ---

  **IMPORTANT NOTE**. We currently ship macOS release binaries for both architectures: `x86_64` and `arm64`. If this PR gets merged, only `x86_64` architecture will be tested on CI, which implies some [drawbacks](https://github.com/bitcoin/bitcoin/pull/28187#issuecomment-1658077549).

  However, it has never been the case that our CI tested both architectures simultaneously. And we hope that GitHub Actions will soon host macOS `arm64` runners.

  Historically, we moved from `x86_64` to `arm64` in https://github.com/bitcoin/bitcoin/pull/26388 less than a year ago.

  ---

  Security concerns:
  - https://github.com/bitcoin/bitcoin/issues/28098#issuecomment-1651432106
  - https://github.com/bitcoin/bitcoin/issues/28098#issuecomment-1651688197

  `GITHUB_TOKEN` permissions (from the build log in my personal repo):
  ```
  2023-07-27T07:30:17.8313534Z ##[group]GITHUB_TOKEN Permissions
  2023-07-27T07:30:17.8314113Z Contents: read
  2023-07-27T07:30:17.8314608Z Metadata: read
  2023-07-27T07:30:17.8314957Z Packages: read
  2023-07-27T07:30:17.8315233Z ##[endgroup]
  ```

  Comparison of resources:

  | Resource | Current, Cirrus CI | Suggested, GitHub Actions |
  |---|:-:|:-:|
  | CPU | 4 | 4 \*\* |
  | RAM, GB | 8 | 14 |

  **\*\* NOTE**: However, [docs](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources) are mentioning:
  > 3-core CPU (x86_64)

ACKs for top commit:
  MarcoFalke:
    re-ACK 9658d0dc17 🏂
  achow101:
    ACK 9658d0dc17
  jarolrod:
    ACK 9658d0dc17

Tree-SHA512: 6123e68e6784cdf4e53c3e77b435709261db21f09091af2c22e667d3816a305fffb9d617297a5bc1bda18aaba84a6e210cec6a75c52afa7746a3780a67b69865
2023-08-15 17:03:13 -04:00
MarcoFalke faaa0794b2
refactor: Remove PERSISTENT_WORKER_* yaml templates
* PERSISTENT_WORKER_TEMPLATE_ENV is not needed at all, because
  RESTART_CI_DOCKER_BEFORE_RUN is already set on the persistent worker.
* PERSISTENT_WORKER_TEMPLATE can be replaced by pinning the
  previous_releases task to a type of worker. This should make the CI
  performance more consistent.
2023-08-15 11:59:30 +02:00
Hennadii Stepanov c2a87bd302
ci: Drop no longer needed `macos_sdk_cache`
It has been cached in the Docker image since https://github.com/bitcoin/bitcoin/pull/27028.
2023-08-14 17:02:06 +01:00
MarcoFalke fa1d8955f6
ci: Move tidy to persistent worker 2023-08-09 12:50:21 +02:00
Hennadii Stepanov 9658d0dc17
ci: Run "macOS native x86_64" job on GitHub Actions
Also, the "macOS native arm64" task has been removed from Cirrus CI.
2023-08-09 10:59:43 +01:00
MarcoFalke fad0b67c21
ci: Use qemu-user through container engine 2023-08-07 17:36:14 +02:00
MarcoFalke fa474397b5
ci: Add missing linux-headers package to ASan task
Otherwise the task will throw in skip_if_no_python_bcc.

Also, adjust CI_CONTAINER_CAP for all needed permissions.
2023-08-01 17:33:36 +02:00
MarcoFalke fabaa85c01
ci: Move ASan USDT to persistent_worker 2023-08-01 17:33:33 +02:00
Hennadii Stepanov 79ceb161db
ci: Use documented `CCACHE_MAXSIZE` instead of `CCACHE_SIZE`
This change aims to:
1) Remove our own `CCACHE_SIZE` environment variable that violates
Ccache's `CCACHE_*` namespace.
2) Introduce the `CCACHE_MAXSIZE` environment variable that is
documented since v3.3, which makes its usage consistent with other ones,
such as `CCACHE_DIR` and `CCACHE_NOHASHDIR`.
2023-07-30 21:36:56 +01:00
MarcoFalke fa2f18ad8e
ci: Use DOCKER_BUILDKIT for lint image
Can be reviewed with:
--color-moved=dimmed-zebra  --ignore-all-space
2023-07-16 13:18:18 +02:00
MarcoFalke fac14c4e49
ci: Remove deprecated container.greedy
The option is to be phased out, so remove it to avoid relying on it.
Update container.cpu and timeouts where needed.
2023-07-04 10:41:25 +02:00
Cory Fields fb61bc0c02 depends: Bump MacOS minimum runtime requirement to 11.0
This is necessary as the new fixup_chains linker behavior is only valid
when the runtime target is >=11.0.
2023-06-22 15:28:47 +00:00
fanquake 681ecac5c2
Merge bitcoin/bitcoin#27881: ci: Use latest `macos-ventura-xcode:14.3.1` image
a13c3f3177 ci: Use latest `macos-ventura-xcode:14.3.1` image (Hennadii Stepanov)

Pull request description:

  As documented: 427853ab49/.cirrus.yml (L339)

  Last time, the image was updated in https://github.com/bitcoin/bitcoin/pull/26388.

  The `check_clang` script diff:
  ```diff
  --- master
  +++ pr
  @@ -1,5 +1,5 @@
   clang --version
  -Apple clang version 14.0.0 (clang-1400.0.29.202)
  -Target: arm64-apple-darwin22.1.0
  +Apple clang version 14.0.3 (clang-1403.0.22.14.1)
  +Target: arm64-apple-darwin22.5.0
   Thread model: posix
  -InstalledDir: /Applications/Xcode-14.1.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
  +InstalledDir: /Applications/Xcode-14.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

ACKs for top commit:
  fanquake:
    ACK a13c3f3177

Tree-SHA512: 18ffa97cc5900a5b35d0ecda79a55d7427610c6e799742b5811e1c470ef320fd98f9400168c4c517f8668f1bf76e57d68cd373a41fa346d15084855aa2c409b3
2023-06-14 15:10:55 +01:00
fanquake ff17b28b02
Merge bitcoin/bitcoin#27883: ci: Bump macOS cross task to ubuntu:jammy
fa70e85e00 ci: Bump macOS cross task to ubuntu:jammy (MarcoFalke)

Pull request description:

  It shouldn't matter what underlying image is used for the task, because the compiler is fully provided by `./depends/`.

  So just use the latest Ubuntu LTS, which is also most likely the OS that is used by people cross-compiling, if there are any at all.

ACKs for top commit:
  fanquake:
    ACK fa70e85e00
  hebasto:
    ACK fa70e85e00

Tree-SHA512: ab2831a8182ca382b8af37d5395c35b5341b8f55b0ce05f4787c627cbec306cefad66713ad053228862eeac01fb8b79be7e168c41e6ec4615fbcb4ef106125b8
2023-06-14 15:09:18 +01:00
Hennadii Stepanov 016fe6d828
ci: Switch to `amd64` container in "ARM" task
Tee `arm_container` does not support 32-bit mode anymore.
See: https://github.com/bitcoin/bitcoin/issues/27879
2023-06-14 13:32:22 +01:00
MarcoFalke fa70e85e00
ci: Bump macOS cross task to ubuntu:jammy 2023-06-14 10:49:27 +02:00
Hennadii Stepanov a13c3f3177
ci: Use latest `macos-ventura-xcode:14.3.1` image 2023-06-13 23:00:33 +01:00
MarcoFalke fa22538e48
ci: Nuke Android APK task, Use credits for tsan 2023-06-07 16:05:26 +02:00
fanquake 5763b232e6
ci: return to using Ubuntu 22.04 in MSAN jobs
We no-longer need to use 23.04, now that we aren't installing clang-16
and friends.
2023-05-29 17:20:50 +01:00
MarcoFalke fa69955e74
ci: Bump centos:stream8 to centos:stream9
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-18 12:24:38 +02:00
MarcoFalke fa3761d19d
ci: Reduce tsan CPU and memory for faster scheduling 2023-05-17 16:29:58 +02:00
MarcoFalke aaaa07bc84
ci: Use credits for ARM task 2023-05-17 16:17:00 +02:00
fanquake bf07e3a47e
ci: fix asan task name
Pointed out in
https://github.com/bitcoin/bitcoin/issues/27380#issuecomment-1536434598.
2023-05-05 16:58:23 +01:00
MarcoFalke fa6e2bfd05
ci: Use arm_container.dockerfile 2023-05-03 15:31:40 +02:00
fanquake 1232c2f6b9
ci: use LLVM/clang-16 in native_asan job
Similar to #27298.
2023-05-02 12:02:23 +01:00
MarcoFalke 88881cf7ac
Bump python minimum version to 3.8
Also, switch ci_native_qt5 to g++-9 (from g++-8) to work around bugs.
This should be fine, because the i686_centos task still checks for g++-8
compatibility.

See
https://github.com/bitcoin/bitcoin/pull/27483#issuecomment-1513477050
for the list of bugs.
2023-04-21 10:18:19 +02:00
MarcoFalke fa4a46de0b
ci: Bump nowallet_libbitcoinkernel task to ubuntu:focal
This is needed to work around
https://github.com/bitcoin/bitcoin/pull/27340#issuecomment-1484988445

The only change should be that python3.7 is bumped to 3.8, but this is
fine because ci/test/00_setup_env_native_qt5.sh still checks for
python3.7 compatibility.
2023-04-11 14:12:37 +02:00
MarcoFalke fabc7d90a9
ci: Use credits in more tasks
This should give faster feedback about the CI result, while still
keeping expenses reasonable.
2023-04-11 14:12:30 +02:00
MarcoFalke facae3b149
ci: Use Cirrus CI dockerfile env 2023-04-11 14:11:48 +02:00
fanquake 676671527f
test: LLVM/Clang 16 for MSAN jobs
Sync up with other CI infra.
2023-04-10 10:57:05 +01:00
fanquake a56c96507a
ci: use clang-16 in tidy task 2023-04-05 11:43:42 +01:00
fanquake a634c288c3
ci: use LLVM/clang-16 in native_fuzz (ASAN) job
Similar to #27298.
2023-03-29 16:05:59 +01:00
MarcoFalke faf4aca15a
ci: Use TSan new runtime (llvm-16, take 3) 2023-03-28 10:01:47 +02:00
Hennadii Stepanov 8fe27fbed8
ci: Use clang-15 in "tidy" task 2023-03-22 15:21:39 +00:00
glozow a984beeca1
[ci] change lint to bookworm for git v2.38
Since 5497c14, verify-commits.py requires git merge-tree which is only
available in git v2.38 or later.
2023-02-28 14:42:48 +00:00