mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-25 18:53:23 -03:00
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/.
This commit is contained in:
parent
b8ee2fa02e
commit
fa193f5dfc
4 changed files with 9 additions and 12 deletions
|
@ -64,8 +64,8 @@ container_depends_template: &CONTAINER_DEPENDS_TEMPLATE
|
||||||
cpu: 2
|
cpu: 2
|
||||||
memory: 8G # Set to 8GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-containers
|
memory: 8G # Set to 8GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-containers
|
||||||
dockerfile: ci/test_imagefile # https://cirrus-ci.org/guide/docker-builder-vm/#dockerfile-as-a-ci-environment
|
dockerfile: ci/test_imagefile # https://cirrus-ci.org/guide/docker-builder-vm/#dockerfile-as-a-ci-environment
|
||||||
depends_built_cache:
|
base_depends_built_cache:
|
||||||
folder: "depends/built"
|
folder: "/ci_container_base/depends/built"
|
||||||
fingerprint_script: echo $CIRRUS_TASK_NAME $(git rev-parse HEAD:depends)
|
fingerprint_script: echo $CIRRUS_TASK_NAME $(git rev-parse HEAD:depends)
|
||||||
|
|
||||||
global_task_template: &GLOBAL_TASK_TEMPLATE
|
global_task_template: &GLOBAL_TASK_TEMPLATE
|
||||||
|
|
|
@ -13,13 +13,9 @@ set -ex
|
||||||
BASE_READ_ONLY_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../../ >/dev/null 2>&1 && pwd )
|
BASE_READ_ONLY_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../../ >/dev/null 2>&1 && pwd )
|
||||||
export BASE_READ_ONLY_DIR
|
export BASE_READ_ONLY_DIR
|
||||||
# The destination root dir inside the container.
|
# The destination root dir inside the container.
|
||||||
if [ -z "${DANGER_RUN_CI_ON_HOST}" ] ; then
|
# 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
|
# 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"
|
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
|
|
||||||
# The depends dir.
|
# The depends dir.
|
||||||
# This folder exists only on the ci guest, and on the ci host as a volume.
|
# 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}
|
export DEPENDS_DIR=${DEPENDS_DIR:-$BASE_ROOT_DIR/depends}
|
||||||
|
|
|
@ -58,7 +58,8 @@ CI_EXEC () {
|
||||||
}
|
}
|
||||||
export -f 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 "${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"
|
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
|
# Fixes permission issues when there is a container UID/GID mismatch with the owner
|
||||||
|
|
|
@ -11,6 +11,6 @@ ARG FILE_ENV
|
||||||
ENV FILE_ENV=${FILE_ENV}
|
ENV FILE_ENV=${FILE_ENV}
|
||||||
|
|
||||||
COPY ./ci/retry/retry /usr/bin/retry
|
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"]
|
||||||
|
|
Loading…
Add table
Reference in a new issue