| #!/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" |