Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 31 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -431,6 +431,36 @@ jobs:
--generate-notes \
${PRERELEASE_FLAG}

- name: 'Regenerate CHANGELOG.md'
# Stable releases only: nightly/preview ship daily and would drown out
# the changelog. The just-created GitHub Release is already queryable,
# so the generator picks it up. The release branch was already pushed
# above, so push this follow-up commit too — otherwise the PR opened
# below (whose head is the remote branch) would not include it.
#
# Non-blocking by design: the only realistic failures are transient
# (the gh API read or the git push). The changelog is rebuilt from the
# full release history on every run, so a skipped update self-heals on
# the next stable release — never worth blocking the version-bump PR to
# main that follows.
if: |-
${{ needs.prepare.outputs.is_dry_run == 'false' && needs.prepare.outputs.is_nightly == 'false' && needs.prepare.outputs.is_preview == 'false' }}
continue-on-error: true

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Suggestion] continue-on-error: true makes this step's failures completely unobservable. The comment says failures are "transient" and will "self-heal on the next stable release", but if the root cause is persistent (e.g., token permissions revoked, script runtime error after a Node.js upgrade), the changelog will silently stop updating across all future releases, CI stays green, and no alert fires.

Consider adding a failure() handler to emit a workflow annotation or log a visible warning so the team can notice persistent failures:

- if: failure()
  run: echo "::warning::CHANGELOG.md generation failed; will retry on next release"

— DeepSeek/deepseek-v4-pro via Qwen Code /review

env:
GH_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
RELEASE_TAG: '${{ needs.prepare.outputs.release_tag }}'
BRANCH_NAME: '${{ steps.release_branch.outputs.BRANCH_NAME }}'
run: |-
set -euo pipefail
node scripts/generate-changelog.js
Comment thread
LaZzyMan marked this conversation as resolved.
git add CHANGELOG.md
if git diff --cached --quiet -- CHANGELOG.md; then
echo "CHANGELOG.md already up to date."
else
git commit -m "docs(changelog): sync for ${RELEASE_TAG}"
git push origin "${BRANCH_NAME}"
fi

- name: 'Create PR to merge release branch into main'
if: |-
${{ needs.prepare.outputs.is_dry_run == 'false' && needs.prepare.outputs.is_nightly == 'false' && needs.prepare.outputs.is_preview == 'false' }}
Expand All @@ -448,7 +478,7 @@ jobs:
--base main \
--head "${RELEASE_BRANCH}" \
--title "chore(release): ${RELEASE_TAG}" \
--body "Automated release PR for ${RELEASE_TAG}. Syncs package.json versions on main.")"
--body "Automated release PR for ${RELEASE_TAG}. Syncs package.json versions and CHANGELOG.md on main.")"
fi

echo "PR_URL=${pr_url}" >> "${GITHUB_OUTPUT}"
Expand Down
2 changes: 2 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
*.tsbuildinfo
*.vsix
bower_components
# Generated by scripts/generate-changelog.js — do not hand-format.
CHANGELOG.md
eslint.config.js
**/generated
gha-creds-*.json
Expand Down
Loading
Loading