#!/usr/bin/env bash set -eou pipefail DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" source "${DIR}/promote/common_utils.sh" if [[ -z "${RESTORE_FROM:-}" ]]; then echo "ERROR: RESTORE_FROM environment variable must be specified" echo " example: RESTORE_FROM=v1.6.0-rc3 ${0}" exit 1 fi DRY_RUN=${DRY_RUN:-enabled} PYTORCH_S3_BACKUP_BUCKET=${PYTORCH_S3_BACKUP_BUCKET:-s3://pytorch-backup/${RESTORE_FROM}} PYTORCH_S3_TEST_BUCKET=${PYTORCH_S3_TEST_BUCKET:-s3://pytorch/} PYTORCH_S3_FROM=${PYTORCH_S3_FROM:-${PYTORCH_S3_BACKUP_BUCKET}} PYTORCH_S3_TO=${PYTORCH_S3_TO:-s3://pytorch/} restore_wheels() { aws_promote torch whl } restore_libtorch() { aws_promote libtorch-* libtorch } ANACONDA="true anaconda" if [[ ${DRY_RUN} = "disabled" ]]; then ANACONDA="anaconda" fi PYTORCH_CONDA_TO=${PYTORCH_CONDA_TO:-pytorch-test} upload_conda() { local pkg pkg=${1} ( set -x ${ANACONDA} upload --skip -u "${PYTORCH_CONDA_TO}" "${pkg}" ) } export -f upload_conda restore_conda() { TMP_DIR="$(mktemp -d)" trap 'rm -rf ${TMP_DIR}' EXIT ( set -x aws s3 cp --recursive "${PYTORCH_S3_BACKUP_BUCKET}/conda" "${TMP_DIR}/" ) export ANACONDA export PYTORCH_CONDA_TO # Should upload all bz2 packages in parallel for quick restoration find "${TMP_DIR}" -name '*.bz2' -type f \ | xargs -P 10 -I % bash -c "(declare -t upload_conda); upload_conda %" } restore_wheels restore_libtorch restore_conda