#!/usr/bin/env bash # # Step 2 after branch cut is complete. # # Creates PR with release only changes. # # Prerequisite: Must be successfully authenticated in aws fbossci account. # # Usage (run from root of project): # DRY_RUN=disabled ./scripts/release/apply-release-changes.sh # # RELEASE_VERSION: Version of this current release set -eou pipefail GIT_TOP_DIR=$(git rev-parse --show-toplevel) RELEASE_VERSION=${RELEASE_VERSION:-$(cut -d'.' -f1-2 "${GIT_TOP_DIR}/version.txt")} DRY_RUN=${DRY_RUN:-enabled} # Change all GitHub Actions to reference the test-infra release branch # as opposed to main. echo "Applying to workflows" for i in .github/workflows/*.yml; do sed -i -e s#@main#@"release/${RELEASE_VERSION}"# $i; done # Change all checkout step in templates to not add ref to checkout echo "Applying to templates" for i in .github/templates/*.yml.j2; do sed -i 's#common.checkout(\(.*\))#common.checkout(\1, checkout_pr_head=False)#' $i; done # Triton wheel echo "Triton Changes" sed -i -e s#-\ main#"-\ release\/${RELEASE_VERSION}"# .github/workflows/build-triton-wheel.yml # XLA related changes echo "XLA Changes" sed -i -e s#--quiet#-b\ r"${RELEASE_VERSION}"# .ci/pytorch/common_utils.sh sed -i -e s#.*#r"${RELEASE_VERSION}"# .github/ci_commit_pins/xla.txt # Regenerate templates export RELEASE_VERSION_TAG=${RELEASE_VERSION} ./.github/regenerate.sh # Pin Unstable and disabled jobs and tests UNSTABLE_VER=$(aws s3api list-object-versions --bucket ossci-metrics --prefix unstable-jobs.json --query 'Versions[?IsLatest].[VersionId]' --output text) DISABLED_VER=$(aws s3api list-object-versions --bucket ossci-metrics --prefix disabled-jobs.json --query 'Versions[?IsLatest].[VersionId]' --output text) SLOW_VER=$(aws s3api list-object-versions --bucket ossci-metrics --prefix slow-tests.json --query 'Versions[?IsLatest].[VersionId]' --output text) DISABLED_TESTS_VER=$(aws s3api list-object-versions --bucket ossci-metrics --prefix disabled-tests-condensed.json --query 'Versions[?IsLatest].[VersionId]' --output text) sed -i -e s#unstable-jobs.json#"unstable-jobs.json?versionId=${UNSTABLE_VER}"# .github/scripts/filter_test_configs.py sed -i -e s#disabled-jobs.json#"disabled-jobs.json?versionId=${DISABLED_VER}"# .github/scripts/filter_test_configs.py sed -i -e s#disabled-tests-condensed.json#"disabled-tests-condensed.json?versionId=${DISABLED_TESTS_VER}"# tools/stats/import_test_stats.py # Optional git commit -m "[RELEASE-ONLY CHANGES] Branch Cut for Release {RELEASE_VERSION}" git push origin "${RELEASE_BRANCH}"