diff options
author | fanquake <fanquake@gmail.com> | 2021-03-29 10:37:25 +0800 |
---|---|---|
committer | fanquake <fanquake@gmail.com> | 2021-03-29 11:04:55 +0800 |
commit | de4d3ba43705ea313f92f17295005c371a8d0bd0 (patch) | |
tree | 139786c9bbe8ca4638d3d00dbfa42b1ccf42664f | |
parent | c00852653f2bf9cd3ee53ab05d574fe4a9ff6dcc (diff) | |
parent | fa52d7d3adc99c0e716628058b4fd083034d27e0 (diff) |
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.yml | 10 | ||||
-rwxr-xr-x | ci/test/00_setup_env.sh | 6 | ||||
-rw-r--r-- | ci/test/00_setup_env_android.sh | 12 | ||||
-rwxr-xr-x | ci/test/05_before_script.sh | 5 |
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 |