@@ -120,14 +120,29 @@ jobs:
120120 git config user.name "github-actions[bot]"
121121 git config user.email "github-actions[bot]@users.noreply.github.com"
122122
123+ - name : Determine last published release tag
124+ id : last-published
125+ env :
126+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
127+ run : |
128+ # Find the most recent non-draft, non-prerelease published release tag
129+ BASE_TAG=$(gh release list --limit 20 --json tagName,isDraft,isPrerelease \
130+ --jq '[.[] | select(.isDraft == false and .isPrerelease == false)] | .[0].tagName // empty')
131+ if [ -z "$BASE_TAG" ]; then
132+ # Fallback: most recent git tag (first release in the repo)
133+ BASE_TAG=$(git tag --sort=-v:refname | head -1)
134+ fi
135+ echo "tag=${BASE_TAG}" >> "$GITHUB_OUTPUT"
136+ echo "Base tag for release: ${BASE_TAG}"
137+
123138 - name : Run NX Release (version + changelog + commit + tag)
124139 id : release
125140 env :
126141 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
127142 CI : " true"
128143 run : |
129144 OLD_VERSION=$(node -p "require('./package.json').version")
130- node scripts/release.mjs
145+ node scripts/release.mjs --from="${{ steps.last-published.outputs.tag }}"
131146 NEW_VERSION=$(node -p "require('./package.json').version")
132147 echo "version=$NEW_VERSION" >> "$GITHUB_OUTPUT"
133148 if [ "$OLD_VERSION" != "$NEW_VERSION" ]; then
@@ -159,22 +174,6 @@ jobs:
159174 if : steps.release.outputs.changed == 'true'
160175 run : npm install -g @github/copilot
161176
162- - name : Determine last published release tag
163- if : steps.release.outputs.changed == 'true'
164- id : last-published
165- env :
166- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
167- run : |
168- # Find the most recent non-draft, non-prerelease published release tag
169- BASE_TAG=$(gh release list --limit 20 --json tagName,isDraft,isPrerelease \
170- --jq '[.[] | select(.isDraft == false and .isPrerelease == false)] | .[0].tagName // empty')
171- if [ -z "$BASE_TAG" ]; then
172- # Fallback: second-latest git tag if no published release exists
173- BASE_TAG=$(git tag --sort=-v:refname | head -2 | tail -1)
174- fi
175- echo "tag=${BASE_TAG}" >> "$GITHUB_OUTPUT"
176- echo "Base tag for release summary: ${BASE_TAG}"
177-
178177 - name : Generate release summary
179178 if : steps.release.outputs.changed == 'true'
180179 env :
0 commit comments