44 pull_request :
55 branches :
66 - main
7+ - release-*
78
89jobs :
910 build :
4849 - name : Check for docs changes
4950 id : docs-changes
5051 working-directory : .
52+ env :
53+ BASE_REF : origin/${{ github.base_ref }}
5154 run : |
52- DOCS_CHANGED=$(git diff --name-only origin/main ...HEAD -- docs/ | grep '\.md$' || true)
55+ DOCS_CHANGED=$(git diff --name-only "$BASE_REF" ...HEAD -- docs/ | grep '\.md$' || true)
5356 if [ -z "$DOCS_CHANGED" ]; then
5457 echo "skip=true" >> "$GITHUB_OUTPUT"
5558 echo "No markdown changes in docs/"
@@ -99,8 +102,10 @@ jobs:
99102
100103 - name : Check for source changes requiring version bump
101104 id : changes
105+ env :
106+ BASE_REF : origin/${{ github.base_ref }}
102107 run : |
103- CHANGED_FILES=$(git diff --name-only origin/main ...HEAD)
108+ CHANGED_FILES=$(git diff --name-only "$BASE_REF" ...HEAD)
104109 echo "Changed files:"
105110 echo "$CHANGED_FILES"
106111
@@ -113,7 +118,7 @@ jobs:
113118 ;;
114119 package.json)
115120 # Check if anything other than "version" changed
116- OTHER_CHANGES=$(git diff origin/main ...HEAD -- package.json | grep -E '^[+-]\s' | grep -v -E '^\+\+\+|^---' | grep -v '"version"' || true)
121+ OTHER_CHANGES=$(git diff "$BASE_REF" ...HEAD -- package.json | grep -E '^[+-]\s' | grep -v -E '^\+\+\+|^---' | grep -v '"version"' || true)
117122 if [ -n "$OTHER_CHANGES" ]; then
118123 NEEDS_BUMP=true
119124 break
@@ -126,32 +131,34 @@ jobs:
126131
127132 - name : Verify version bump and changelog
128133 if : steps.changes.outputs.needs_bump == 'true'
134+ env :
135+ BASE_REF : origin/${{ github.base_ref }}
129136 run : |
130137 PR_VERSION=$(node -p "require('./package.json').version")
131- MAIN_VERSION =$(git show origin/main :package.json | node -p "JSON.parse(require('fs').readFileSync('/dev/stdin','utf8')).version")
138+ BASE_VERSION =$(git show "$BASE_REF" :package.json | node -p "JSON.parse(require('fs').readFileSync('/dev/stdin','utf8')).version")
132139
133- echo "Main version: $MAIN_VERSION "
140+ echo "Base version: $BASE_VERSION "
134141 echo "PR version: $PR_VERSION"
135142
136- if [ "$PR_VERSION" = "$MAIN_VERSION " ]; then
143+ if [ "$PR_VERSION" = "$BASE_VERSION " ]; then
137144 echo "::error::Source files or dependencies changed but package version was not bumped. Please update the version in package.json."
138145 exit 1
139146 fi
140147
141148 HIGHER=$(node -e "
142- const [a, b] = ['$PR_VERSION', '$MAIN_VERSION '].map(v => v.split('.').map(Number));
149+ const [a, b] = ['$PR_VERSION', '$BASE_VERSION '].map(v => v.split('.').map(Number));
143150 const isHigher = a[0] > b[0] || (a[0] === b[0] && a[1] > b[1]) || (a[0] === b[0] && a[1] === b[1] && a[2] > b[2]);
144151 process.exit(isHigher ? 0 : 1);
145152 " && echo "true" || echo "false")
146153
147154 if [ "$HIGHER" != "true" ]; then
148- echo "::error::PR version ($PR_VERSION) must be higher than main version ($MAIN_VERSION )."
155+ echo "::error::PR version ($PR_VERSION) must be higher than base version ($BASE_VERSION )."
149156 exit 1
150157 fi
151158
152- echo "Version bumped from $MAIN_VERSION to $PR_VERSION"
159+ echo "Version bumped from $BASE_VERSION to $PR_VERSION"
153160
154- CHANGELOG_CHANGED=$(git diff --name-only origin/main ...HEAD -- docs/changelog.md)
161+ CHANGELOG_CHANGED=$(git diff --name-only "$BASE_REF" ...HEAD -- docs/changelog.md)
155162 if [ -z "$CHANGELOG_CHANGED" ]; then
156163 echo "::error::Version was bumped but docs/changelog.md was not updated. Please add a changelog entry for version $PR_VERSION."
157164 exit 1
0 commit comments