Update the CI to use semantic-release. (actually semantic-release-plus, to allowcommitPaths to filter the commits for jsep and per package). Basically, it automatically generates a tag, updates the changelog, and publishes to npm on any push to the main branch.
Add plugins and config
Add release script. Can be manually tested with npm run release -- --dry-run --no-cli --debug.
Update github workflows:
PRs will run default script (lint, build, test, docco)
ANY push to main will run default to verify the build, then it will run a new release script which runs semantic-release on jsep and all packages
automatically checks for all commits from the last v${version} tag, filters to the changes applicable to that project, then looks for build | ci | docs | feat | fix | perf | refactor | test changes to automatically update package.json and the changelog, tag a release, push to github and publish to npm
Note: requires that all commit messages follow the required template format. Commit messages that don't follow this format will not trigger a release or be included in the changelog. To group changes, the overall workflow should likely change to use an alpha branch. The CI workflow could be setup to watch those other branches then (instead of just the main branch) so that it can publish alpha or beta versions.
Before release: Part of how it works is by looking for existing tags and then all commits since that tag. Before releasing this, all plugins would need to be tagged, like @jsep-plugin/arrow-1.0.1. jsep itself is still tagged as just v1.0.2.
(I forked jsep so I could test everything in isolation. Feel free to play there as well and view the action/pr history. That fork skips publishing to NPM - by config in the package.json - but is otherwise the same)
Fixes #171
Update the CI to use semantic-release. (actually semantic-release-plus, to allow
commitPaths
to filter the commits for jsep and per package). Basically, it automatically generates a tag, updates the changelog, and publishes to npm on any push to the main branch.npm run release -- --dry-run --no-cli --debug
.default
script (lint, build, test, docco)default
to verify the build, then it will run a newrelease
script which runssemantic-release
on jsep and all packagesv${version}
tag, filters to the changes applicable to that project, then looks forbuild | ci | docs | feat | fix | perf | refactor | test
changes to automatically update package.json and the changelog, tag a release, push to github and publish to npmNote: requires that all commit messages follow the required template format. Commit messages that don't follow this format will not trigger a release or be included in the changelog. To group changes, the overall workflow should likely change to use an
alpha
branch. The CI workflow could be setup to watch those other branches then (instead of just the main branch) so that it can publish alpha or beta versions.Before release: Part of how it works is by looking for existing tags and then all commits since that tag. Before releasing this, all plugins would need to be tagged, like
@jsep-plugin/arrow-1.0.1
. jsep itself is still tagged as justv1.0.2
.(I forked jsep so I could test everything in isolation. Feel free to play there as well and view the action/pr history. That fork skips publishing to NPM - by config in the package.json - but is otherwise the same)