Skip to content

Automate changelog from release notes#153

Merged
GaryJones merged 1 commit into
developfrom
experiement/changelog
Mar 18, 2022
Merged

Automate changelog from release notes#153
GaryJones merged 1 commit into
developfrom
experiement/changelog

Conversation

@GaryJones
Copy link
Copy Markdown
Collaborator

@GaryJones GaryJones commented Mar 18, 2022

Props to @johnbillion for the work he had done on https://github.com/johnbillion/user-switching that this work is very minorly tweaked from.

  • The README.md contains a HTML comment as a placeholder.
  • During the deploy workflow (which happens when a non-pre-release release is made from a tag), it connects to the GitHub API, and pulls down previous release notes, removes any pre-release entries, sorts them into order, and loops through to create a string of headings and release notes.
  • This then replaces the HTML comment in the README.md file.

Now instead of maintaining release notes in a CHANGELOG file or in the README, AND also in the GitHub release notes, it's now a single location (GitHub release notes).

The changelog.js workflow script can also be called locally, and this will do a one-time replacement of the HTML comment (for testing or removal of this automation). It needs a GitHub personal access token, and then call:

TOKEN=... GITHUB_REPOSITORY='Automattic/ad-code-manager' node .github/workflows/changelog.js

Props to @johnbillion for the work he had done on https://github.com/johnbillion/user-switching that this work is very minorly tweaked from.

- The README.md contains a HTML comment as a placeholder.
- During the deploy workflow (which happens when a non-pre-release release is made from a tag), it connects to the GitHub API, and pulls down previous release notes, removes any pre-release entries, sorts them into order, and loops through to create a string of headings and release notes.
- This then replaces the HTML comment in the README.md file.

Now instead of maintaining release notes in a CHANGELOG file or in the README, AND also in the GitHub release notes, it's now a single location (GitHub release notes).

The `changelog.js` workflow script can also be called locally, and this will do a one-time replacement of the HTML comment (for testing or removal of this automation). It needs a GitHub personal access token, and then call:

  TOKEN=... GITHUB_REPOSITORY='Automattic/ad-code-manager' node .github/workflows/changelog.js
@GaryJones GaryJones added the type: maintenance Routine maintenance and code quality improvements label Mar 18, 2022
@GaryJones GaryJones added this to the 0.6 milestone Mar 18, 2022
@GaryJones GaryJones self-assigned this Mar 18, 2022
@GaryJones GaryJones merged commit 5eff559 into develop Mar 18, 2022
@GaryJones GaryJones deleted the experiement/changelog branch March 18, 2022 13:47
@johnbillion
Copy link
Copy Markdown

@GaryJones I had planned on converting this into a standalone composite action so it's reusable across repos but haven't gotten around to it. So if you find yourself twiddling your thumbs...

@GaryJones
Copy link
Copy Markdown
Collaborator Author

@johnbillion I did wonder if that was on your radar. Would make sense to do that. Not something I've created before.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: maintenance Routine maintenance and code quality improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants