xref: /aosp_15_r20/external/executorch/scripts/release/apply-release-changes.sh (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
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