summaryrefslogtreecommitdiffstats
path: root/src/arrow/dev/tasks/conda-recipes/run_docker_build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/arrow/dev/tasks/conda-recipes/run_docker_build.sh')
-rwxr-xr-xsrc/arrow/dev/tasks/conda-recipes/run_docker_build.sh77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/arrow/dev/tasks/conda-recipes/run_docker_build.sh b/src/arrow/dev/tasks/conda-recipes/run_docker_build.sh
new file mode 100755
index 000000000..7645c43e2
--- /dev/null
+++ b/src/arrow/dev/tasks/conda-recipes/run_docker_build.sh
@@ -0,0 +1,77 @@
+#!/usr/bin/env bash
+
+# NOTE: This script has been slightly adopted to suite the Apache Arrow / crossbow CI
+# setup. The next time this is updated to the current version on conda-forge,
+# you will also make this additions afterwards.
+
+# PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here
+# will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent
+# changes to this script, consider a proposal to conda-smithy so that other feedstocks can also
+# benefit from the improvement.
+
+set -xeo pipefail
+
+build_dir=${1}
+
+THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )"
+ARROW_ROOT=$(cd "$THISDIR/../../.."; pwd;)
+FEEDSTOCK_ROOT=$THISDIR
+
+docker info
+
+# In order for the conda-build process in the container to write to the mounted
+# volumes, we need to run with the same id as the host machine, which is
+# normally the owner of the mounted volumes, or at least has write permission
+export HOST_USER_ID=$(id -u)
+# Check if docker-machine is being used (normally on OSX) and get the uid from
+# the VM
+if hash docker-machine 2> /dev/null && docker-machine active > /dev/null; then
+ export HOST_USER_ID=$(docker-machine ssh $(docker-machine active) id -u)
+fi
+
+if [ -z "$CONFIG" ]; then
+ set +x
+ FILES=`ls .ci_support/linux_*`
+ CONFIGS=""
+ for file in $FILES; do
+ CONFIGS="${CONFIGS}'${file:12:-5}' or ";
+ done
+ echo "Need to set CONFIG env variable. Value can be one of ${CONFIGS:0:-4}"
+ exit 1
+fi
+
+if [ -z "${DOCKER_IMAGE}" ]; then
+ SHYAML_INSTALLED="$(shyaml -h || echo NO)"
+ if [ "${SHYAML_INSTALLED}" == "NO" ]; then
+ echo "WARNING: DOCKER_IMAGE variable not set and shyaml not installed. Falling back to condaforge/linux-anvil-comp7"
+ DOCKER_IMAGE="condaforge/linux-anvil-comp7"
+ else
+ DOCKER_IMAGE="$(cat "${FEEDSTOCK_ROOT}/.ci_support/${CONFIG}.yaml" | shyaml get-value docker_image.0 condaforge/linux-anvil-comp7 )"
+ fi
+fi
+
+mkdir -p "${build_dir}"
+DONE_CANARY="${build_dir}/conda-forge-build-done-${CONFIG}"
+rm -f "$DONE_CANARY"
+
+if [ -z "${CI}" ]; then
+ DOCKER_RUN_ARGS="-it "
+fi
+
+export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}"
+docker run ${DOCKER_RUN_ARGS} \
+ --shm-size=2G \
+ -v "${ARROW_ROOT}":/arrow:rw,z \
+ -v "${build_dir}":/build:rw \
+ -e FEEDSTOCK_ROOT="/arrow/dev/tasks/conda-recipes" \
+ -e CONFIG \
+ -e R_CONFIG \
+ -e HOST_USER_ID \
+ -e UPLOAD_PACKAGES \
+ -e ARROW_VERSION \
+ -e CI \
+ $DOCKER_IMAGE \
+ bash /arrow/dev/tasks/conda-recipes/build_steps.sh /build
+
+# verify that the end of the script was reached
+test -f "$DONE_CANARY"