Skip to content

Commit d036fbf

Browse files
committed
INFRA-2867: Updated comments set previous branch regex
Signed-off-by: Pavel Dvorkin <pavel.dvorkin@consensys.net>
1 parent 3dcd328 commit d036fbf

File tree

3 files changed

+22
-8
lines changed

3 files changed

+22
-8
lines changed

.github/scripts/create-platform-release-pr.sh

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#
1313
# Parameters:
1414
# platform - 'mobile' or 'extension'
15-
# previous_version_ref - Previous release version tag or branch name (e.g., v7.7.0)
15+
# previous_version_ref - Previous release version branch name, tag or commit hash (e.g., release/7.7.0, v7.7.0, or 76fbc500034db9779e9ff7ce637ac5be1da0493d)
1616
# new_version - New semantic version (e.g., 7.8.0)
1717
# new_version_number - Build version for mobile platform (optional, required for mobile)
1818
# git_user_name - Git user name for commits (optional, defaults to 'metamaskbot')
@@ -307,14 +307,27 @@ create_changelog_pr() {
307307
echo "Current Directory: $(pwd)"
308308
PROJECT_GIT_DIR=$(pwd)
309309

310-
# Resolve previous_version_ref when it's a branch name: fetch and use origin/<branch>. This enables branch names to be used as previous version references.
310+
# By default, DIFF_BASE is set to the provided `previous_version_ref` (which can be a branch name, tag, or commit hash).
311+
# If `previous_version_ref` matches a remote branch on origin, we fetch it and update DIFF_BASE to the fully qualified remote ref (`origin/<branch>`).
312+
# This is required for the `generate-rc-commits.mjs` script to resolve the branch and successfully run the `git log` command.
313+
# Otherwise, DIFF_BASE remains unchanged.
311314
DIFF_BASE="${previous_version_ref}"
312-
if git ls-remote --heads origin "${previous_version_ref}" | grep -qE "\srefs/heads/${previous_version_ref}$"; then
313-
echo "Detected remote branch for previous version: ${previous_version_ref}"
314-
git fetch origin "${previous_version_ref}"
315-
DIFF_BASE="origin/${previous_version_ref}"
315+
316+
# Only consider known release branch patterns to avoid regex pitfalls:
317+
# - Extension: Version-vx.y.z
318+
# - Mobile: release/x.y.z
319+
if [[ "${previous_version_ref}" =~ ^Version-v[0-9]+\.[0-9]+\.[0-9]+$ || "${previous_version_ref}" =~ ^release/[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
320+
echo "Previous version looks like a release branch: ${previous_version_ref}"
321+
# Check if the exact branch exists on origin without interpolating into a regex
322+
if git ls-remote --heads origin "${previous_version_ref}" | grep -q "."; then
323+
echo "Detected remote branch for previous version: ${previous_version_ref}"
324+
git fetch origin "${previous_version_ref}"
325+
DIFF_BASE="origin/${previous_version_ref}"
326+
else
327+
echo "Remote branch not found on origin: ${previous_version_ref}. Will use as-is."
328+
fi
316329
else
317-
echo "No remote branch detected for previous version: ${previous_version_ref}"
330+
echo "Previous version is not a recognized release branch pattern. Treating as tag or SHA: ${previous_version_ref}"
318331
fi
319332

320333
# Switch to github-tools directory

.github/scripts/generate-rc-commits.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ async function getTeam(repository, prNumber) {
5959
}
6060

6161
// Function to filter commits based on unique commit messages and group by teams
62+
// Input parameters refA and refB can be a branch name, a tag or a commit hash (e.g., release/7.7.0, v7.7.0, or 76fbc500034db9779e9ff7ce637ac5be1da0493d)
6263
async function filterCommitsByTeam(platform, refA, refB) {
6364

6465
const MAX_COMMITS = 500; // Limit the number of commits to process

.github/workflows/create-release-pr.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ on:
2222
previous-version-ref:
2323
required: true
2424
type: string
25-
description: 'Previous release version tag or branch name. eg: v7.7.0'
25+
description: 'Previous release version branch name, tag or commit hash (e.g., release/7.7.0, v7.7.0, or 76fbc500034db9779e9ff7ce637ac5be1da0493d)'
2626
# Flag to indicate if the release is a test release for development purposes only
2727
mobile-template-sheet-id:
2828
required: false

0 commit comments

Comments
 (0)