@@ -67,6 +67,20 @@ compute_credits_template: &CREDITS_TEMPLATE
6767 # Only use credits for pull requests to the main repo
6868 use_compute_credits : $CIRRUS_REPO_FULL_NAME == 'ElementsProject/elements' && $CIRRUS_PR != ""
6969
70+ task :
71+ name : ' lint [bionic]'
72+ << : *BASE_TEMPLATE
73+ container :
74+ image : ubuntu:bionic # For python 3.6, oldest supported version according to doc/dependencies.md
75+ cpu : 1
76+ memory : 1G
77+ # For faster CI feedback, immediately schedule the linters
78+ << : *CREDITS_TEMPLATE
79+ lint_script :
80+ - ./ci/lint_run_all.sh
81+ env :
82+ << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
83+
7084task :
7185 name : " Win64 native [msvc]"
7286 << : *FILTER_TEMPLATE
@@ -147,9 +161,9 @@ task:
147161 - python build_msvc\msvc-autogen.py
148162 - msbuild build_msvc\bitcoin.sln -property:Configuration=Release -maxCpuCount -verbosity:minimal -noLogo
149163 unit_tests_script :
150- # - src\test_elements.exe -l test_suite
151- # - src\bench_elements.exe > NUL
152- # - python test\util\test_runner.py
164+ - src\test_elements.exe -l test_suite
165+ - src\bench_elements.exe > NUL
166+ - python test\util\test_runner.py
153167 - python test\util\rpcauth-test.py
154168 functional_tests_script :
155169 # Increase the dynamic port range to the maximum allowed value to mitigate "OSError: [WinError 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted".
@@ -160,14 +174,67 @@ task:
160174 # Exclude feature_dbcrash for now due to timeout
161175 # Exclude also wallet_avoidreuse due to timeout
162176 # Ignore failures for now, need to investigate but we really don't use native win64 builds
163- - python test\functional\test_runner.py --tmpdirprefix=artifactsdir/ --ci --quiet --combinedlogslen=4000 --jobs=4 --timeout-factor=8 feature_block_v4 feature_trim_headers feature_block_v4 feature_fedpeg feature_nulldummy feature_sighash_rangeproof rpc_fundrawtransaction rpc_psbt wallet_bumpfee wallet_keypool wallet_multisig_descriptor_psbt wallet_send wallet_taproot wallet_timelock wallet_watchonly || true
177+ - python test\functional\test_runner.py --nocleanup --ci --quiet --combinedlogslen=4000 --jobs=4 --timeout-factor=8 --extended --exclude feature_dbcrash,wallet_avoidreuse || true
164178
165179 artifacts :
166180 paths :
167181 - artifactsdir/**/*.log
168182 - artifactsdir/**/tmp*
169183 - artifactsdir/**/*.conf
170184
185+ task :
186+ name : ' ARM [unit tests, no functional tests] [bullseye]'
187+ << : *GLOBAL_TASK_TEMPLATE
188+ container :
189+ image : debian:bullseye
190+ docker_arguments :
191+ CI_IMAGE_NAME_TAG : debian:bullseye
192+ << : *CREDITS_TEMPLATE
193+ env :
194+ << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
195+ FILE_ENV : " ./ci/test/00_setup_env_arm.sh"
196+
197+ task :
198+ name : ' Win64 [unit tests, no gui tests, no boost::process, no functional tests] [jammy]'
199+ << : *GLOBAL_TASK_TEMPLATE
200+ container :
201+ image : ubuntu:jammy
202+ env :
203+ << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
204+ FILE_ENV : " ./ci/test/00_setup_env_win64.sh"
205+
206+ task :
207+ name : ' 32-bit + dash [gui] [Rocky 8]'
208+ << : *GLOBAL_TASK_TEMPLATE
209+ container :
210+ image : quay.io/rockylinux/rockylinux:8
211+ env :
212+ << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
213+ PACKAGE_MANAGER_INSTALL : " yum install -y"
214+ FILE_ENV : " ./ci/test/00_setup_env_i686_centos.sh"
215+
216+ task :
217+ name : ' [previous releases, uses qt5 dev package and some depends packages, DEBUG] [unsigned char] [bionic]'
218+ previous_releases_cache :
219+ folder : " releases"
220+ << : *GLOBAL_TASK_TEMPLATE
221+ << : *PERSISTENT_WORKER_TEMPLATE
222+ env :
223+ << : *PERSISTENT_WORKER_TEMPLATE_ENV
224+ FILE_ENV : " ./ci/test/00_setup_env_native_qt5.sh"
225+
226+ task :
227+ name : ' [TSan, depends, gui] [2404]'
228+ << : *GLOBAL_TASK_TEMPLATE
229+ container :
230+ image : ubuntu:24.04
231+ cpu : 6 # Increase CPU and Memory to avoid timeout
232+ memory : 24G
233+ env :
234+ << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
235+ FILE_ENV : " ./ci/test/00_setup_env_native_tsan.sh"
236+ MAKEJOBS : " -j2" # Avoid excessive memory use due to MSan
237+
171238task :
172239 name : ' [MSan, depends] [focal]'
173240 << : *GLOBAL_TASK_TEMPLATE
@@ -177,6 +244,64 @@ task:
177244 << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
178245 FILE_ENV : " ./ci/test/00_setup_env_native_msan.sh"
179246
247+ task :
248+ name : ' [ASan + LSan + UBSan + integer, no depends] [jammy]'
249+ << : *GLOBAL_TASK_TEMPLATE
250+ container :
251+ image : ubuntu:jammy
252+ memory : 16G # ELEMENTS: need more memory
253+ cpu : 4 # ELEMENTS: cirrus wants more CPUs if you want more memory
254+ env :
255+ << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
256+ FILE_ENV : " ./ci/test/00_setup_env_native_asan.sh"
257+
258+ task :
259+ name : ' [fuzzer,address,undefined,integer, no depends] [jammy]'
260+ << : *GLOBAL_TASK_TEMPLATE
261+ container :
262+ image : ubuntu:jammy
263+ cpu : 8 # Increase CPU and memory to avoid timeout
264+ memory : 16G
265+ env :
266+ << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
267+ FILE_ENV : " ./ci/test/00_setup_env_native_fuzz.sh"
268+
269+ task :
270+ name : ' [multiprocess, i686, DEBUG] [focal]'
271+ # Disable for Elements for now; Multiprocess build is not supported or tested and fails CI.
272+ only_if : false
273+ << : *GLOBAL_TASK_TEMPLATE
274+ container :
275+ image : ubuntu:focal
276+ cpu : 4
277+ memory : 16G # The default memory is sometimes just a bit too small, so double everything
278+ env :
279+ << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
280+ FILE_ENV : " ./ci/test/00_setup_env_i686_multiprocess.sh"
281+
282+ task :
283+ name : ' [no wallet, libbitcoinkernel] [bionic]'
284+ << : *GLOBAL_TASK_TEMPLATE
285+ container :
286+ image : ubuntu:bionic
287+ env :
288+ << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
289+ FILE_ENV : " ./ci/test/00_setup_env_native_nowallet_libbitcoinkernel.sh"
290+
291+ task :
292+ name : ' macOS 10.15 [gui, no tests] [focal]'
293+ << : *BASE_TEMPLATE
294+ macos_sdk_cache :
295+ folder : " depends/SDKs/$MACOS_SDK"
296+ fingerprint_key : " $MACOS_SDK"
297+ << : *MAIN_TEMPLATE
298+ container :
299+ image : ubuntu:focal
300+ env :
301+ MACOS_SDK : " Xcode-12.2-12B45b-extracted-SDK-with-libcxx-headers"
302+ << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
303+ FILE_ENV : " ./ci/test/00_setup_env_mac.sh"
304+
180305task :
181306 name : ' macOS 13 native arm64 [gui, sqlite only] [no depends]'
182307 macos_instance :
@@ -188,3 +313,20 @@ task:
188313 CI_USE_APT_INSTALL : " no"
189314 PACKAGE_MANAGER_INSTALL : " echo" # Nothing to do
190315 FILE_ENV : " ./ci/test/00_setup_env_mac_native_arm64.sh"
316+
317+ task :
318+ name : ' ARM64 Android APK [focal]'
319+ # Disable for Elements; Android build is broken and unsupported.
320+ only_if : false
321+ android_sdk_cache :
322+ folder : " depends/SDKs/android"
323+ fingerprint_key : " ANDROID_API_LEVEL=28 ANDROID_BUILD_TOOLS_VERSION=28.0.3 ANDROID_NDK_VERSION=23.1.7779620"
324+ depends_sources_cache :
325+ folder : " depends/sources"
326+ fingerprint_script : git rev-list -1 HEAD ./depends
327+ << : *MAIN_TEMPLATE
328+ container :
329+ image : ubuntu:focal
330+ env :
331+ << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
332+ FILE_ENV : " ./ci/test/00_setup_env_android.sh"
0 commit comments