aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2021-03-29 10:37:25 +0800
committerfanquake <fanquake@gmail.com>2021-03-29 11:04:55 +0800
commitde4d3ba43705ea313f92f17295005c371a8d0bd0 (patch)
tree139786c9bbe8ca4638d3d00dbfa42b1ccf42664f
parentc00852653f2bf9cd3ee53ab05d574fe4a9ff6dcc (diff)
parentfa52d7d3adc99c0e716628058b4fd083034d27e0 (diff)
downloadbitcoin-de4d3ba43705ea313f92f17295005c371a8d0bd0.tar.xz
Merge #21541: ci: Build depends only once for Android build
fa52d7d3adc99c0e716628058b4fd083034d27e0 cirrus: Add missing depends_sources_cache to Android task (MarcoFalke) ffff4e7373f7c1260e6a8347b4ea1a99db4fff76 cirrus: Only cache releases when needed (MarcoFalke) fa97a17ac332d2270f80497d5660665e88ea621c ci: Bump Android cross-build to Ubuntu Focal (MarcoFalke) fac577d42330e57c17540cabdb8be43c90b715d9 ci: Build depends only once for Android build (MarcoFalke) fa908a41f3b86622e4635b3478467e19fa67b571 ci: Set DEPENDS_DIR when setting BASE_ROOT_DIR (MarcoFalke) Pull request description: 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 ACKs for top commit: ryanofsky: 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.) hebasto: ACK fa52d7d3adc99c0e716628058b4fd083034d27e0, I have reviewed the code and it looks OK, I agree it can be merged after passing CI. Tree-SHA512: ae7c68e357068176a0e58285b83521353321c65862cee4ff56f413c51b00398062f0ee6775bfbbf28fda420cf5a24000a2286fbcf6cc7f3729b7805bc8419726
-rw-r--r--.cirrus.yml10
-rwxr-xr-xci/test/00_setup_env.sh6
-rw-r--r--ci/test/00_setup_env_android.sh12
-rwxr-xr-xci/test/05_before_script.sh5
4 files changed, 19 insertions, 14 deletions
diff --git a/.cirrus.yml b/.cirrus.yml
index e881e587bf..b3d58461e0 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -35,8 +35,6 @@ global_task_template: &GLOBAL_TASK_TEMPLATE
folder: "/tmp/cirrus-ci-build/depends/built"
depends_sdk_cache:
folder: "/tmp/cirrus-ci-build/depends/sdk-sources"
- depends_releases_cache:
- folder: "/tmp/cirrus-ci-build/releases"
ci_script:
- ./ci/test_run_all.sh
@@ -103,6 +101,8 @@ task:
# For faster CI feedback, immediately schedule a task that compiles most modules
<< : *CREDITS_TEMPLATE
<< : *GLOBAL_TASK_TEMPLATE
+ depends_releases_cache:
+ folder: "/tmp/cirrus-ci-build/releases"
container:
image: ubuntu:bionic
env:
@@ -182,9 +182,11 @@ task:
FILE_ENV: "./ci/test/00_setup_env_mac_host.sh"
task:
- name: 'ARM64 Android APK [bionic]'
+ name: 'ARM64 Android APK [focal]'
+ depends_sources_cache:
+ folder: "/tmp/cirrus-ci-build/depends/sources"
<< : *GLOBAL_TASK_TEMPLATE
container:
- image: ubuntu:bionic
+ image: ubuntu:focal
env:
FILE_ENV: "./ci/test/00_setup_env_android.sh"
diff --git a/ci/test/00_setup_env.sh b/ci/test/00_setup_env.sh
index 87cf8538f6..e6aec723bc 100755
--- a/ci/test/00_setup_env.sh
+++ b/ci/test/00_setup_env.sh
@@ -11,6 +11,9 @@ export LC_ALL=C.UTF-8
# This is where the depends build is done.
BASE_ROOT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../../ >/dev/null 2>&1 && pwd )
export BASE_ROOT_DIR
+# The depends dir.
+# This folder exists on the ci host and ci guest. Changes are propagated back and forth.
+export DEPENDS_DIR=${DEPENDS_DIR:-$BASE_ROOT_DIR/depends}
echo "Setting specific values in env"
if [ -n "${FILE_ENV}" ]; then
@@ -56,9 +59,6 @@ export CCACHE_COMPRESS=${CCACHE_COMPRESS:-1}
# The cache dir.
# This folder exists on the ci host and ci guest. Changes are propagated back and forth.
export CCACHE_DIR=${CCACHE_DIR:-$BASE_SCRATCH_DIR/.ccache}
-# The depends dir.
-# This folder exists on the ci host and ci guest. Changes are propagated back and forth.
-export DEPENDS_DIR=${DEPENDS_DIR:-$BASE_ROOT_DIR/depends}
# Folder where the build result is put (bin and lib).
export BASE_OUTDIR=${BASE_OUTDIR:-$BASE_SCRATCH_DIR/out/$HOST}
# Folder where the build is done (dist and out-of-tree build).
diff --git a/ci/test/00_setup_env_android.sh b/ci/test/00_setup_env_android.sh
index 8b872faec5..f78a84eeac 100644
--- a/ci/test/00_setup_env_android.sh
+++ b/ci/test/00_setup_env_android.sh
@@ -6,12 +6,20 @@
export LC_ALL=C.UTF-8
-export CONTAINER_NAME=ci_android
+export HOST=aarch64-linux-android
export PACKAGES="clang llvm unzip openjdk-8-jdk gradle"
+export CONTAINER_NAME=ci_android
+export DOCKER_NAME_TAG="ubuntu:focal"
+
+export RUN_UNIT_TESTS=false
+export RUN_FUNCTIONAL_TESTS=false
export ANDROID_API_LEVEL=28
export ANDROID_BUILD_TOOLS_VERSION=28.0.3
export ANDROID_NDK_VERSION=21.1.6352462
export ANDROID_TOOLS_URL=https://dl.google.com/android/repository/commandlinetools-linux-6609375_latest.zip
+export ANDROID_HOME="${DEPENDS_DIR}/SDKs/android"
+export ANDROID_NDK_HOME="${ANDROID_HOME}/ndk/${ANDROID_NDK_VERSION}"
+export DEP_OPTS="ANDROID_SDK=${ANDROID_HOME} ANDROID_NDK=${ANDROID_NDK_HOME} ANDROID_API_LEVEL=${ANDROID_API_LEVEL} ANDROID_TOOLCHAIN_BIN=${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/"
-export BITCOIN_CONFIG="--disable-ccache" \ No newline at end of file
+export BITCOIN_CONFIG="--disable-ccache"
diff --git a/ci/test/05_before_script.sh b/ci/test/05_before_script.sh
index 3bfeb2d67f..8dd489d7f8 100755
--- a/ci/test/05_before_script.sh
+++ b/ci/test/05_before_script.sh
@@ -24,16 +24,11 @@ fi
if [ -n "$ANDROID_TOOLS_URL" ]; then
ANDROID_TOOLS_PATH=$DEPENDS_DIR/sdk-sources/android-tools.zip
- ANDROID_HOME="$DEPENDS_DIR"/SDKs/android
- ANDROID_NDK_HOME=${ANDROID_HOME}/ndk/${ANDROID_NDK_VERSION}
DOCKER_EXEC curl --location --fail "${ANDROID_TOOLS_URL}" -o "$ANDROID_TOOLS_PATH"
DOCKER_EXEC mkdir -p "${ANDROID_HOME}/cmdline-tools"
DOCKER_EXEC unzip -o "$ANDROID_TOOLS_PATH" -d "${ANDROID_HOME}/cmdline-tools"
DOCKER_EXEC "yes | ${ANDROID_HOME}/cmdline-tools/tools/bin/sdkmanager --install \"build-tools;${ANDROID_BUILD_TOOLS_VERSION}\" \"platform-tools\" \"platforms;android-${ANDROID_API_LEVEL}\" \"ndk;${ANDROID_NDK_VERSION}\""
-
- MAKE_COMMAND="ANDROID_SDK=${ANDROID_HOME} ANDROID_NDK=${ANDROID_NDK_HOME} make $MAKEJOBS -C depends HOST=aarch64-linux-android ANDROID_API_LEVEL=${ANDROID_API_LEVEL} ANDROID_TOOLCHAIN_BIN=${ANDROID_HOME}/ndk/${ANDROID_NDK_VERSION}/toolchains/llvm/prebuilt/linux-x86_64/bin/ $DEP_OPTS"
- DOCKER_EXEC "$MAKE_COMMAND" HOST=aarch64-linux-android
fi
if [[ ${USE_MEMORY_SANITIZER} == "true" ]]; then