-
Notifications
You must be signed in to change notification settings - Fork 627
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ci: setup conventional commits & release automation #673
ci: setup conventional commits & release automation #673
Conversation
f5f840d
to
77b4d0e
Compare
ddac66f
to
ec53691
Compare
@ncb000gt we need some help for some more of these steps. I don't have perms for master branch protection or setting up GitHub PAC. if you want to set those up yourself you can or you can give me perms and I can do it. either way works, should just be a one time thing (well at least until next year when the tokens expire) |
## [3.0.0-beta.1](v2.3.1...v3.0.0-beta.1) (2023-07-20) ### ⚠ Breaking changes * UNIX standard alignments (#667) ### ✨ Features * UNIX standard alignments ([#667](#667)) ([96ef954](96ef954)) ### ⚙️ Continuous Integrations * add support for beta & maintenance releases ([#677](#677)) ([c6fc842](c6fc842)) * setup conventional commits & release automation ([#673](#673)) ([c6f39ff](c6f39ff)) ### ♻️ Chores * update default branch name ([#678](#678)) ([7471e95](7471e95))
## [3.0.0-beta.1](v2.3.1...v3.0.0-beta.1) (2023-07-20) ### ⚠ Breaking changes * UNIX standard alignments (#667) ### ✨ Features * UNIX standard alignments ([#667](#667)) ([96ef954](96ef954)) ### ⚙️ Continuous Integrations * add support for beta & maintenance releases ([#677](#677)) ([c6fc842](c6fc842)) * setup conventional commits & release automation ([#673](#673)) ([c6f39ff](c6f39ff)) ### ♻️ Chores * update default branch name ([#678](#678)) ([7471e95](7471e95))
## [3.0.0-beta.1](v2.3.1...v3.0.0-beta.1) (2023-07-20) ### ⚠ Breaking changes * UNIX standard alignments (#667) ### ✨ Features * UNIX standard alignments ([#667](#667)) ([96ef954](96ef954)) ### ⚙️ Continuous Integrations * add support for beta & maintenance releases ([#677](#677)) ([c6fc842](c6fc842)) * setup conventional commits & release automation ([#673](#673)) ([c6f39ff](c6f39ff)) ### ♻️ Chores * update default branch name ([#678](#678)) ([7471e95](7471e95))
## [3.0.0-beta.1](v2.3.1...v3.0.0-beta.1) (2023-07-23) ### ⚠ Breaking changes * UNIX standard alignments (#667) ### ✨ Features * UNIX standard alignments ([#667](#667)) ([96ef954](96ef954)) ### ⚙️ Continuous Integrations * add support for beta & maintenance releases ([#677](#677)) ([c6fc842](c6fc842)) * setup conventional commits & release automation ([#673](#673)) ([c6f39ff](c6f39ff)) ### ♻️ Chores * update default branch name ([#678](#678)) ([7471e95](7471e95))
🎉 This PR is included in version 3.0.0-beta.1 🎉 The release is available on: Your semantic-release bot 📦🚀 |
## [2.4.0](v2.3.0...v2.4.0) (2023-07-24) ### ✨ Features * import type definitions from [@types](https://github.com/types)/cron ([d8a2f14](d8a2f14)) ### 🐛 Bug Fixes * don't start job in setTime if it wasn't running ([7e26c23](7e26c23)) ### 🛠 Builds * **npm:** ship type definitions with releases ([0b663a8](0b663a8)) ### 🚨 Tests * add test case for [#598](#598) fix ([4322ef2](4322ef2)) * don't stop/start job before using setTime ([f0d5d3f](f0d5d3f)) ### ⚙️ Continuous Integrations * add support for beta & maintenance releases ([#677](#677)) ([c6fc842](c6fc842)) * setup conventional commits & release automation ([#673](#673)) ([c6f39ff](c6f39ff)) ### ♻️ Chores * update default branch name ([#678](#678)) ([7471e95](7471e95)) * wrap setTime tests in describe and move down ([31989e0](31989e0))
🎉 This PR is included in version 2.4.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
## [2.4.0](kelektiv/node-cron@v2.3.0...v2.4.0) (2023-07-24) ### ✨ Features * import type definitions from [@types](https://github.com/types)/cron ([d8a2f14](kelektiv/node-cron@d8a2f14)) ### 🐛 Bug Fixes * don't start job in setTime if it wasn't running ([7e26c23](kelektiv/node-cron@7e26c23)) ### 🛠 Builds * **npm:** ship type definitions with releases ([0b663a8](kelektiv/node-cron@0b663a8)) ### 🚨 Tests * add test case for [#598](kelektiv/node-cron#598) fix ([4322ef2](kelektiv/node-cron@4322ef2)) * don't stop/start job before using setTime ([f0d5d3f](kelektiv/node-cron@f0d5d3f)) ### ⚙️ Continuous Integrations * add support for beta & maintenance releases ([#677](kelektiv/node-cron#677)) ([c6fc842](kelektiv/node-cron@c6fc842)) * setup conventional commits & release automation ([#673](kelektiv/node-cron#673)) ([c6f39ff](kelektiv/node-cron@c6f39ff)) ### ♻️ Chores * update default branch name ([#678](kelektiv/node-cron#678)) ([7471e95](kelektiv/node-cron@7471e95)) * wrap setTime tests in describe and move down ([31989e0](kelektiv/node-cron@31989e0))
## [2.4.0](v2.3.0...v2.4.0) (2023-07-24) ### ✨ Features * import type definitions from [@types](https://github.com/types)/cron ([d8a2f14](d8a2f14)) ### 🐛 Bug Fixes * don't start job in setTime if it wasn't running ([7e26c23](7e26c23)) ### 🛠 Builds * **npm:** ship type definitions with releases ([0b663a8](0b663a8)) ### 🚨 Tests * add test case for [#598](#598) fix ([4322ef2](4322ef2)) * don't stop/start job before using setTime ([f0d5d3f](f0d5d3f)) ### ⚙️ Continuous Integrations * add support for beta & maintenance releases ([#677](#677)) ([c6fc842](c6fc842)) * setup conventional commits & release automation ([#673](#673)) ([c6f39ff](c6f39ff)) ### ♻️ Chores * update default branch name ([#678](#678)) ([7471e95](7471e95)) * wrap setTime tests in describe and move down ([31989e0](31989e0))
## [2.4.0](kelektiv/node-cron@v2.3.0...v2.4.0) (2023-07-24) ### ✨ Features * import type definitions from [@types](https://github.com/types)/cron ([d8a2f14](kelektiv@d8a2f14)) ### 🐛 Bug Fixes * don't start job in setTime if it wasn't running ([7e26c23](kelektiv@7e26c23)) ### 🛠 Builds * **npm:** ship type definitions with releases ([0b663a8](kelektiv@0b663a8)) ### 🚨 Tests * add test case for [kelektiv#598](kelektiv#598) fix ([4322ef2](kelektiv@4322ef2)) * don't stop/start job before using setTime ([f0d5d3f](kelektiv@f0d5d3f)) ### ⚙️ Continuous Integrations * add support for beta & maintenance releases ([kelektiv#677](kelektiv#677)) ([c6fc842](kelektiv@c6fc842)) * setup conventional commits & release automation ([kelektiv#673](kelektiv#673)) ([c6f39ff](kelektiv@c6f39ff)) ### ♻️ Chores * update default branch name ([kelektiv#678](kelektiv#678)) ([7471e95](kelektiv@7471e95)) * wrap setTime tests in describe and move down ([31989e0](kelektiv@31989e0))
## [2.4.0](kelektiv/node-cron@v2.3.0...v2.4.0) (2023-07-24) ### ✨ Features * import type definitions from [@types](https://github.com/types)/cron ([d8a2f14](kelektiv@d8a2f14)) ### 🐛 Bug Fixes * don't start job in setTime if it wasn't running ([7e26c23](kelektiv@7e26c23)) ### 🛠 Builds * **npm:** ship type definitions with releases ([0b663a8](kelektiv@0b663a8)) ### 🚨 Tests * add test case for [kelektiv#598](kelektiv#598) fix ([4322ef2](kelektiv@4322ef2)) * don't stop/start job before using setTime ([f0d5d3f](kelektiv@f0d5d3f)) ### ⚙️ Continuous Integrations * add support for beta & maintenance releases ([kelektiv#677](kelektiv#677)) ([c6fc842](kelektiv@c6fc842)) * setup conventional commits & release automation ([kelektiv#673](kelektiv#673)) ([c6f39ff](kelektiv@c6f39ff)) ### ♻️ Chores * update default branch name ([kelektiv#678](kelektiv#678)) ([7471e95](kelektiv@7471e95)) * wrap setTime tests in describe and move down ([31989e0](kelektiv@31989e0))
Purpose of the changes
In order to improve the maintainability and velocity of this project, I suggested we implement an automatic release pipeline.
To support this automation feature, I've set up the repository to follow the Conventional Commits formatting standard. This allows any commit to be parsed programmatically, and the release type (major, minor, patch) associated with a group of new commits to be determined automatically.
For more information on the different commit types and their associated releases, please check the table listing from the configuration preset.
Once those changes are merged to
master
:master
will automatically be linted (locally with a pre-commit hook) to ensure they follow the formatting standard.master
branch will trigger a Test & Release workflow (unless[skip ci]
is present in the commit title) that will analyze the commits since the last version, automatically determine the necessary version bump, and handle the whole release process (updatingpackage.json
&package-lock.json
, generating newCHANGELOG.md
entries, publishing Github tag & release, then publishing the new version to npm).Todo before merging the PR:
master
(cf screenshot below)master
with (at least) the following options:CI_GITHUB_TOKEN
repository secret on the Github repositoryNPM_TOKEN
repository secret on the Github repositoryScreenshots
disable merge commits in PR, only allow squash merging
setup branch protection for `master` *(required checks are not exactly the same in the screenshot)*
Github PAC > the "Overview" section should look like this
Notes