1*523fa7a6SAndroid Build Coastguard Worker#!/usr/bin/env bash 2*523fa7a6SAndroid Build Coastguard Worker# Copyright (c) Meta Platforms, Inc. and affiliates. 3*523fa7a6SAndroid Build Coastguard Worker# All rights reserved. 4*523fa7a6SAndroid Build Coastguard Worker# 5*523fa7a6SAndroid Build Coastguard Worker# This source code is licensed under the BSD-style license found in the 6*523fa7a6SAndroid Build Coastguard Worker# LICENSE file in the root directory of this source tree. 7*523fa7a6SAndroid Build Coastguard Worker 8*523fa7a6SAndroid Build Coastguard Worker: ' 9*523fa7a6SAndroid Build Coastguard Worker# Step 2 after branch cut is complete. 10*523fa7a6SAndroid Build Coastguard Worker# 11*523fa7a6SAndroid Build Coastguard Worker# Creates PR with release only changes. 12*523fa7a6SAndroid Build Coastguard Worker# 13*523fa7a6SAndroid Build Coastguard Worker# Usage (run from root of project): 14*523fa7a6SAndroid Build Coastguard Worker# TEST_INFRA_BRANCH=release/2.3 ./scripts/release/apply-release-changes.sh 15*523fa7a6SAndroid Build Coastguard Worker# 16*523fa7a6SAndroid Build Coastguard Worker# TEST_INFRA_BRANCH: The release branch of test-infra that houses all reusable 17*523fa7a6SAndroid Build Coastguard Worker' 18*523fa7a6SAndroid Build Coastguard Worker 19*523fa7a6SAndroid Build Coastguard Workerset -eou pipefail 20*523fa7a6SAndroid Build Coastguard Worker 21*523fa7a6SAndroid Build Coastguard WorkerGIT_TOP_DIR=$(git rev-parse --show-toplevel) 22*523fa7a6SAndroid Build Coastguard WorkerRELEASE_VERSION=${RELEASE_VERSION:-$(cut -d'.' -f1-2 "${GIT_TOP_DIR}/version.txt")} 23*523fa7a6SAndroid Build Coastguard WorkerRELEASE_BRANCH="release/${RELEASE_VERSION}" 24*523fa7a6SAndroid Build Coastguard Worker 25*523fa7a6SAndroid Build Coastguard Worker# Check out to Release Branch 26*523fa7a6SAndroid Build Coastguard Worker 27*523fa7a6SAndroid Build Coastguard Workerif git ls-remote --exit-code origin ${RELEASE_BRANCH} >/dev/null 2>&1; then 28*523fa7a6SAndroid Build Coastguard Worker echo "Check out to Release Branch '${RELEASE_BRANCH}'" 29*523fa7a6SAndroid Build Coastguard Worker git checkout ${RELEASE_BRANCH} 30*523fa7a6SAndroid Build Coastguard Workerelse 31*523fa7a6SAndroid Build Coastguard Worker echo "Error: Remote branch '${RELEASE_BRANCH}' not found. Please run 'cut-release-branch.sh' first." 32*523fa7a6SAndroid Build Coastguard Worker exit 1 33*523fa7a6SAndroid Build Coastguard Workerfi 34*523fa7a6SAndroid Build Coastguard Worker 35*523fa7a6SAndroid Build Coastguard Worker# Change all GitHub Actions to reference the test-infra release branch 36*523fa7a6SAndroid Build Coastguard Worker# as opposed to main. 37*523fa7a6SAndroid Build Coastguard Workerecho "Applying release-only changes to workflows" 38*523fa7a6SAndroid Build Coastguard Workerfor i in .github/workflows/*.yml; do 39*523fa7a6SAndroid Build Coastguard Worker if [[ "$OSTYPE" == "darwin"* ]]; then 40*523fa7a6SAndroid Build Coastguard Worker sed -i '' -e s#@main#@"${TEST_INFRA_BRANCH}"# $i; 41*523fa7a6SAndroid Build Coastguard Worker sed -i '' -e s#test-infra-ref:[[:space:]]main#"test-infra-ref: ${TEST_INFRA_BRANCH}"# $i; 42*523fa7a6SAndroid Build Coastguard Worker else 43*523fa7a6SAndroid Build Coastguard Worker sed -i -e s#@main#@"${TEST_INFRA_BRANCH}"# $i; 44*523fa7a6SAndroid Build Coastguard Worker sed -i -e s#test-infra-ref:[[:space:]]main#"test-infra-ref: ${TEST_INFRA_BRANCH}"# $i; 45*523fa7a6SAndroid Build Coastguard Worker fi 46*523fa7a6SAndroid Build Coastguard Workerdone 47*523fa7a6SAndroid Build Coastguard Worker 48*523fa7a6SAndroid Build Coastguard Workerecho "You'll need to manually commit the changes and create a PR. Here are the steps:" 49*523fa7a6SAndroid Build Coastguard Workerecho "1. Stage the changes to the workflow files:" 50*523fa7a6SAndroid Build Coastguard Workerecho " git add ./github/workflows/*.yml" 51*523fa7a6SAndroid Build Coastguard Workerecho "2. Commit the changes:" 52*523fa7a6SAndroid Build Coastguard Workerecho " git commit -m \"[RELEASE-ONLY CHANGES] Branch Cut for Release ${RELEASE_VERSION}\"" 53*523fa7a6SAndroid Build Coastguard Workerecho "3. After committing, create a pull request to merge the changes." 54