Currently the Android task has several issues:
- It is missing a cache instruction, thus failing the build on Cirrus CI
- It is running the depends build twice
Fix those issues
Currently the Android task has several issues:
Fix those issues
tACK 04254c746eb162726fde5bcf38c92a23a7a432d6
Thanks again @MarcoFalke
Code review ACK faf847fa749df2fb7eabf0cb3418ff3fdc02074f. Thanks for fixing this! It was affecting some of my prs (https://github.com/bitcoin/bitcoin/pull/17227#issuecomment-806248409).
In the future since the build system is pretty obscure it would be really helpful if commit messages didn’t just say what was changing but also gave some hint why changes were being made.
Are you going to keep the latest “cirrus: temp” commit (04254c746eb162726fde5bcf38c92a23a7a432d6)?
The depends dir can not be overwritten by a FILE_ENV file. Also, a FILE_ENV file
might depend on the DEPENDS_DIR value. Thus, set it before reading FILE_ENV.
This commit does not change behavior, but is required for later commits.
Can be reviewed with --color-moved=dimmed-zebra
Depends is currently built twice for the Android build. For example, the
same task building it twice:
* https://cirrus-ci.com/task/6673185279049728?logs=ci#L3418 (aarch64-linux-android)
* https://cirrus-ci.com/task/6673185279049728?logs=ci#L3422 (x86_64-pc-linux-gnu, 4 lines later)
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.
This does not change behavior, but removes unneeded and empty cache
instructions for tasks that don't need them.
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.
Code review ACK fa52d7d3adc99c0e716628058b4fd083034d27e0. Only change since last review is adding descriptions and changing new RUN_UNIT_TESTS line from true to false. (I assume that change doesn’t do anything because even though prior default was true, it’s a cross compiled build and enabling unit tests would have no effect.)
I’m still not clear if building depends twice before commit 2/5 “ci: Build depends only once for Android build” (fac577d42330e57c17540cabdb8be43c90b715d9) was actually causing problems or just a messy and unnecessary thing to do. But maybe it’s not known. In any case the new descriptions are clear and very helpful!
Maybe also optimize SDK cache:
0--- a/.cirrus.yml
1+++ b/.cirrus.yml
2@@ -33,8 +33,6 @@ global_task_template: &GLOBAL_TASK_TEMPLATE
3 folder: "/tmp/ccache_dir"
4 depends_built_cache:
5 folder: "/tmp/cirrus-ci-build/depends/built"
6- depends_sdk_cache:
7- folder: "/tmp/cirrus-ci-build/depends/sdk-sources"
8 ci_script:
9 - ./ci/test_run_all.sh
10
11@@ -161,6 +159,8 @@ task:
12
13 task:
14 name: 'macOS 10.14 [gui, no tests] [focal]'
15+ depends_sdk_cache:
16+ folder: "/tmp/cirrus-ci-build/depends/sdk-sources"
17 << : *GLOBAL_TASK_TEMPLATE
18 container:
19 image: ubuntu:focal
20@@ -185,6 +185,8 @@ task:
21 name: 'ARM64 Android APK [focal]'
22 depends_sources_cache:
23 folder: "/tmp/cirrus-ci-build/depends/sources"
24+ depends_sdk_cache:
25+ folder: "/tmp/cirrus-ci-build/depends/sdk-sources"
26 << : *GLOBAL_TASK_TEMPLATE
27 container:
28 image: ubuntu:focal
?
MarcoFalke
icota
ryanofsky
hebasto
Labels
Tests