aboutsummaryrefslogtreecommitdiff
path: root/ci
diff options
context:
space:
mode:
authorMarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz>2023-08-15 18:01:20 +0200
committerMarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz>2023-08-16 10:30:50 +0200
commitfa193f5dfc937a7ff8e12b9ffd21861046a46489 (patch)
tree8607afde02908c051d461a73e02e8cc7a40ab860 /ci
parentb8ee2fa02ef5cb6a559c5f459ce7215ed9f6e15c (diff)
downloadbitcoin-fa193f5dfc937a7ff8e12b9ffd21861046a46489.tar.xz
ci: Fix macOS-cross SDK rsync
This should fix the macOS-cross build on Cirrus CI containers. Locally this was already working, because the SDK was cached in /ci_container_base/ in the image, which is also the folder used for a later CI run. However, on Cirrus CI, when using an image *and* a custom BASE_ROOT_DIR, the SDK will not be found in /ci_base_install/, nor in BASE_ROOT_DIR. Fix this by normalizing *all* folders to /ci_container_base/.
Diffstat (limited to 'ci')
-rwxr-xr-xci/test/00_setup_env.sh10
-rwxr-xr-xci/test/04_install.sh3
-rw-r--r--ci/test_imagefile4
3 files changed, 7 insertions, 10 deletions
diff --git a/ci/test/00_setup_env.sh b/ci/test/00_setup_env.sh
index 3014714a44..ca6380d3f4 100755
--- a/ci/test/00_setup_env.sh
+++ b/ci/test/00_setup_env.sh
@@ -13,13 +13,9 @@ set -ex
BASE_READ_ONLY_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../../ >/dev/null 2>&1 && pwd )
export BASE_READ_ONLY_DIR
# The destination root dir inside the container.
-if [ -z "${DANGER_RUN_CI_ON_HOST}" ] ; then
- # This folder only exists on the ci guest and will be a copy of BASE_READ_ONLY_DIR
- export BASE_ROOT_DIR="/ci_container_base"
-else
- # This folder is equal to BASE_READ_ONLY_DIR and is read-write
- export BASE_ROOT_DIR="${BASE_READ_ONLY_DIR}"
-fi
+# This folder will also hold any SDKs.
+# This folder only exists on the ci guest and will be a copy of BASE_READ_ONLY_DIR
+export BASE_ROOT_DIR="/ci_container_base"
# The depends dir.
# This folder exists only on the ci guest, and on the ci host as a volume.
export DEPENDS_DIR=${DEPENDS_DIR:-$BASE_ROOT_DIR/depends}
diff --git a/ci/test/04_install.sh b/ci/test/04_install.sh
index 99e16bcb98..a2ea2b7093 100755
--- a/ci/test/04_install.sh
+++ b/ci/test/04_install.sh
@@ -58,7 +58,8 @@ CI_EXEC () {
}
export -f CI_EXEC
-CI_EXEC rsync --archive --stats --human-readable /ci_base_install/ "${BASE_ROOT_DIR}" || echo "/ci_base_install/ missing"
+# Normalize all folders to BASE_ROOT_DIR
+CI_EXEC rsync --archive --stats --human-readable "${BASE_READ_ONLY_DIR}/" "${BASE_ROOT_DIR}" || echo "Nothing to copy from ${BASE_READ_ONLY_DIR}/"
CI_EXEC "${BASE_ROOT_DIR}/ci/test/01_base_install.sh"
CI_EXEC rsync --archive --stats --human-readable /ro_base/ "${BASE_ROOT_DIR}" || echo "Nothing to copy from ro_base"
# Fixes permission issues when there is a container UID/GID mismatch with the owner
diff --git a/ci/test_imagefile b/ci/test_imagefile
index 8dfb5916b1..f8b5eea1c8 100644
--- a/ci/test_imagefile
+++ b/ci/test_imagefile
@@ -11,6 +11,6 @@ ARG FILE_ENV
ENV FILE_ENV=${FILE_ENV}
COPY ./ci/retry/retry /usr/bin/retry
-COPY ./ci/test/00_setup_env.sh ./${FILE_ENV} ./ci/test/01_base_install.sh /ci_base_install/ci/test/
+COPY ./ci/test/00_setup_env.sh ./${FILE_ENV} ./ci/test/01_base_install.sh /ci_container_base/ci/test/
-RUN ["bash", "-c", "cd /ci_base_install/ && set -o errexit && source ./ci/test/00_setup_env.sh && ./ci/test/01_base_install.sh"]
+RUN ["bash", "-c", "cd /ci_container_base/ && set -o errexit && source ./ci/test/00_setup_env.sh && ./ci/test/01_base_install.sh"]