Skip to content

Commit 5165984

Browse files
committed
Merge bitcoin/bitcoin#27340: ci: Use Cirrus CI dockerfile env
fa4a46d ci: Bump nowallet_libbitcoinkernel task to ubuntu:focal (MarcoFalke) fabc7d9 ci: Use credits in more tasks (MarcoFalke) facae3b ci: Use Cirrus CI dockerfile env (MarcoFalke) Pull request description: Currently the CI env has many intermittent issues: * The Ubuntu package servers are frequently down * Occasionally other stuff is down, such as dnf, pip, or the android sdk * Installing packages is slower than downloading them, at least on Cirrus, which has a fast download speed Fix all issues by using the Cirrus CI dockerfile env. ACKs for top commit: josibake: code review ACK bitcoin/bitcoin@fa4a46d Tree-SHA512: fea5663f7b6dc1c4ea9f87188026ec542b9269bac8ee3398cd58d4df6c86a0af9d275f1876e03f92fb1f6166ec49b817d9e588e6fe1ed54b77592502c2eccd9d
2 parents 467fa89 + fa4a46d commit 5165984

File tree

2 files changed

+40
-25
lines changed

2 files changed

+40
-25
lines changed

.cirrus.yml

Lines changed: 37 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ container_depends_template: &CONTAINER_DEPENDS_TEMPLATE
4747
cpu: 2
4848
greedy: true
4949
memory: 8G # Set to 8GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-containers
50+
dockerfile: ci/test_imagefile # https://cirrus-ci.org/guide/docker-builder-vm/#dockerfile-as-a-ci-environment
5051
depends_built_cache:
5152
folder: "depends/built"
5253
fingerprint_script: echo $CIRRUS_TASK_NAME $(git rev-parse HEAD:depends)
@@ -83,14 +84,15 @@ task:
8384
name: 'tidy [lunar]'
8485
<< : *GLOBAL_TASK_TEMPLATE
8586
container:
86-
image: ubuntu:lunar
8787
cpu: 2
8888
memory: 5G
89+
docker_arguments:
90+
CI_IMAGE_NAME_TAG: ubuntu:lunar
91+
FILE_ENV: "./ci/test/00_setup_env_native_tidy.sh"
8992
# For faster CI feedback, immediately schedule the linters
9093
<< : *CREDITS_TEMPLATE
9194
env:
9295
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
93-
FILE_ENV: "./ci/test/00_setup_env_native_tidy.sh"
9496

9597
task:
9698
name: "Win64 native [vs2022]"
@@ -195,6 +197,7 @@ task:
195197
image: debian:bullseye
196198
cpu: 2
197199
memory: 8G
200+
# docker_arguments: # Can use dockerfile after https://github.com/cirruslabs/cirrus-ci-docs/issues/1154
198201
env:
199202
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
200203
FILE_ENV: "./ci/test/00_setup_env_arm.sh"
@@ -204,22 +207,25 @@ task:
204207
name: 'Win64 [unit tests, no gui tests, no boost::process, no functional tests] [jammy]'
205208
<< : *GLOBAL_TASK_TEMPLATE
206209
container:
207-
image: ubuntu:jammy
210+
docker_arguments:
211+
CI_IMAGE_NAME_TAG: ubuntu:jammy
212+
FILE_ENV: "./ci/test/00_setup_env_win64.sh"
213+
<< : *CREDITS_TEMPLATE
208214
env:
209215
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
210-
FILE_ENV: "./ci/test/00_setup_env_win64.sh"
211216

212217
task:
213218
name: '32-bit + dash [gui] [CentOS 8]'
214219
<< : *GLOBAL_TASK_TEMPLATE
215220
container:
216-
image: quay.io/centos/centos:stream8
221+
docker_arguments:
222+
CI_IMAGE_NAME_TAG: quay.io/centos/centos:stream8
223+
FILE_ENV: "./ci/test/00_setup_env_i686_centos.sh"
217224
# For faster CI feedback, immediately schedule one task that runs all tests
218225
<< : *CREDITS_TEMPLATE
219226
env:
220227
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
221228
PACKAGE_MANAGER_INSTALL: "yum install -y"
222-
FILE_ENV: "./ci/test/00_setup_env_i686_centos.sh"
223229

224230
task:
225231
name: '[previous releases, uses qt5 dev package and some depends packages, DEBUG] [unsigned char] [buster]'
@@ -235,21 +241,23 @@ task:
235241
name: '[TSan, depends, gui] [lunar]'
236242
<< : *GLOBAL_TASK_TEMPLATE
237243
container:
238-
image: ubuntu:lunar
239244
cpu: 6 # Increase CPU and Memory to avoid timeout
240245
memory: 24G
246+
docker_arguments:
247+
CI_IMAGE_NAME_TAG: ubuntu:lunar
248+
FILE_ENV: "./ci/test/00_setup_env_native_tsan.sh"
241249
env:
242250
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
243-
FILE_ENV: "./ci/test/00_setup_env_native_tsan.sh"
244251

245252
task:
246253
name: '[MSan, depends] [lunar]'
247254
<< : *GLOBAL_TASK_TEMPLATE
248255
container:
249-
image: ubuntu:lunar
256+
docker_arguments:
257+
CI_IMAGE_NAME_TAG: ubuntu:lunar
258+
FILE_ENV: "./ci/test/00_setup_env_native_msan.sh"
250259
env:
251260
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
252-
FILE_ENV: "./ci/test/00_setup_env_native_msan.sh"
253261
MAKEJOBS: "-j4" # Avoid excessive memory use due to MSan
254262

255263
task:
@@ -274,46 +282,52 @@ task:
274282
name: '[fuzzer,address,undefined,integer, no depends] [lunar]'
275283
<< : *GLOBAL_TASK_TEMPLATE
276284
container:
277-
image: ubuntu:lunar
278285
cpu: 4 # Increase CPU and memory to avoid timeout
279286
memory: 16G
287+
docker_arguments:
288+
CI_IMAGE_NAME_TAG: ubuntu:lunar
289+
FILE_ENV: "./ci/test/00_setup_env_native_fuzz.sh"
280290
env:
281291
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
282-
FILE_ENV: "./ci/test/00_setup_env_native_fuzz.sh"
283292

284293
task:
285294
name: '[multiprocess, i686, DEBUG] [focal]'
286295
<< : *GLOBAL_TASK_TEMPLATE
287296
container:
288-
image: ubuntu:focal
289297
cpu: 4
290298
memory: 16G # The default memory is sometimes just a bit too small, so double everything
299+
docker_arguments:
300+
CI_IMAGE_NAME_TAG: ubuntu:focal
301+
FILE_ENV: "./ci/test/00_setup_env_i686_multiprocess.sh"
291302
env:
292303
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
293-
FILE_ENV: "./ci/test/00_setup_env_i686_multiprocess.sh"
294304

295305
task:
296-
name: '[no wallet, libbitcoinkernel] [buster]'
306+
name: '[no wallet, libbitcoinkernel] [focal]'
297307
<< : *GLOBAL_TASK_TEMPLATE
298308
container:
299-
image: debian:buster
309+
docker_arguments:
310+
CI_IMAGE_NAME_TAG: ubuntu:focal
311+
FILE_ENV: "./ci/test/00_setup_env_native_nowallet_libbitcoinkernel.sh"
312+
<< : *CREDITS_TEMPLATE
300313
env:
301314
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
302-
FILE_ENV: "./ci/test/00_setup_env_native_nowallet_libbitcoinkernel.sh"
303315

304316
task:
305317
name: 'macOS 10.15 [gui, no tests] [focal]'
306318
<< : *CONTAINER_DEPENDS_TEMPLATE
307319
container:
308-
image: ubuntu:focal
320+
docker_arguments:
321+
CI_IMAGE_NAME_TAG: ubuntu:focal
322+
FILE_ENV: "./ci/test/00_setup_env_mac.sh"
323+
<< : *CREDITS_TEMPLATE
309324
macos_sdk_cache:
310325
folder: "depends/SDKs/$MACOS_SDK"
311326
fingerprint_key: "$MACOS_SDK"
312327
<< : *MAIN_TEMPLATE
313328
env:
314329
MACOS_SDK: "Xcode-12.2-12B45b-extracted-SDK-with-libcxx-headers"
315330
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
316-
FILE_ENV: "./ci/test/00_setup_env_mac.sh"
317331

318332
task:
319333
name: 'macOS 13 native arm64 [gui, sqlite only] [no depends]'
@@ -336,7 +350,10 @@ task:
336350
name: 'ARM64 Android APK [jammy]'
337351
<< : *CONTAINER_DEPENDS_TEMPLATE
338352
container:
339-
image: ubuntu:jammy
353+
docker_arguments:
354+
CI_IMAGE_NAME_TAG: ubuntu:jammy
355+
FILE_ENV: "./ci/test/00_setup_env_android.sh"
356+
<< : *CREDITS_TEMPLATE
340357
android_sdk_cache:
341358
folder: "depends/SDKs/android"
342359
fingerprint_key: "ANDROID_API_LEVEL=28 ANDROID_BUILD_TOOLS_VERSION=28.0.3 ANDROID_NDK_VERSION=23.2.8568313"
@@ -346,4 +363,3 @@ task:
346363
<< : *MAIN_TEMPLATE
347364
env:
348365
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
349-
FILE_ENV: "./ci/test/00_setup_env_android.sh"

ci/test/00_setup_env_native_nowallet_libbitcoinkernel.sh

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@
77
export LC_ALL=C.UTF-8
88

99
export CONTAINER_NAME=ci_native_nowallet_libbitcoinkernel
10-
export CI_IMAGE_NAME_TAG=debian:buster
11-
# Use minimum supported python3.7 and clang-8, see doc/dependencies.md
12-
export PACKAGES="-t buster-backports python3-zmq clang-8 llvm-8 libc++abi-8-dev libc++-8-dev"
13-
export APPEND_APT_SOURCES_LIST="deb http://deb.debian.org/debian buster-backports main"
10+
export CI_IMAGE_NAME_TAG=ubuntu:focal
11+
# Use minimum supported python3.7 (or python3.8, as best-effort) and clang-8, see doc/dependencies.md
12+
export PACKAGES="python3-zmq clang-8 llvm-8 libc++abi-8-dev libc++-8-dev"
1413
export DEP_OPTS="NO_WALLET=1 CC=clang-8 CXX='clang++-8 -stdlib=libc++'"
1514
export GOAL="install"
1615
export NO_WERROR=1

0 commit comments

Comments
 (0)