diff --git a/tools/rapids-wheels-anaconda b/tools/rapids-wheels-anaconda new file mode 100755 index 0000000..386ff2a --- /dev/null +++ b/tools/rapids-wheels-anaconda @@ -0,0 +1,56 @@ +#!/bin/bash +# A utility script to upload Python wheel packages to Anaconda repository using anaconda-client. + +# Positional Arguments: +# 1) wheel name + +set -exou pipefail +source rapids-constants +export RAPIDS_SCRIPT_NAME="rapids-wheels-anaconda" + +if [ -z "$1" ]; then + rapids-echo-stderr "Must specify input arguments: WHEEL_NAME" + exit 1 +fi +WHEEL_NAME="$1" + +WHEEL_SEARCH_KEY="wheel_python_${WHEEL_NAME}" + +WHEEL_DIR="./dist" +mkdir -p "${WHEEL_DIR}" + +S3_PATH=$(rapids-s3-path) +BUCKET_PREFIX=${S3_PATH/s3:\/\/${RAPIDS_DOWNLOADS_BUCKET}\//} # removes s3://rapids-downloads/ from s3://rapids-downloads/ci/rmm/... + +# shellcheck disable=SC2016 +WHEEL_TARBALLS=$( + set -eo pipefail; + aws \ + --output json \ + s3api list-objects \ + --bucket "${RAPIDS_DOWNLOADS_BUCKET}" \ + --prefix "${BUCKET_PREFIX}" \ + --page-size 100 \ + --query "Contents[?contains(Key, '${WHEEL_SEARCH_KEY}')].Key" \ + | jq -c +) +export WHEEL_TARBALLS + +# first untar them all +for OBJ in $(jq -nr 'env.WHEEL_TARBALLS | fromjson | .[]'); do + FILENAME=$(basename "${OBJ}") + S3_URI="${S3_PATH}${FILENAME}" + + rapids-echo-stderr "Untarring ${S3_URI} into ${WHEEL_DIR}" + aws s3 cp --only-show-errors "${S3_URI}" - | tar xzf - -C "${WHEEL_DIR}" +done + +export RAPIDS_RETRY_SLEEP=180 +# shellcheck disable=SC2086 +rapids-retry anaconda \ + -t "${RAPIDS_CONDA_TOKEN}" \ + upload \ + --skip-existing \ + --no-progress \ + "${WHEEL_DIR}"/*.whl +echo "" diff --git a/tools/tools b/tools/tools new file mode 100644 index 0000000..e69de29