Action and CLI to help managing public repositories that publish one or more npm packages
The easiest way to create a new turbo-module is to use create-turbo-module:
NOTE: pnpm is required, so install pnpm if not available yet
pnpm create turbo-moduleFollow the instructions given by the CLI.
After a successful install the github repo needs to be configured. Follow the steps outlined in the README of your newly set-up turbo-module
- publish multiple npm packages from the same repository
- release new versions by accepting automatically created PRs
- after every release there are 2 PRs created, one for a full release and one of a canary release
- the full release PR can be configured by commenting
/major,/minoror/patch
- automatic GitHub release with every npm release
unimported-actioninstalled by default- repository linting with PR hints
Multi-purpose action - different sub-actions can be invoked via the action input
-
finds every package in
packages -
skips packages unless they specify
private: false -
npm viewto get the latest published version -
compares the latest published version against the current version on main
-
generates a filter with publishable packages that can be passed to the
turbocommand -
Inputs:
- token: github access token
-
compares to current state of main to the last release and generates release notes based on the commits since then
-
creates a github relase if there is none for the current version
-
Inputs:
- token: github access token
- version: current version (usually obtained from
checkaction)
-
creates 2 PRs:
- (turbo-module): release next canary version
- (turbo-module): release next version
-
the severity of the version increase for the
release next versionPR can be controlled through commenting/patch,/minoror/major- only code owners of the root package.json can do this
-
uses the same logic
releaseuses to create previews for the releases -
if there was a release in the workflow the current PRs will be closed and new ones will be opened
-
if there was no release the current PRs are updated to accurately preview the release message
-
Inputs:
- token: github access token
-
updates the severity of the version increase of the
release next versionPR based on comments by code owners -
Inputs:
- token: github access token
- syncs the package.json version to the monorepo root package.json
- updates all workspace dependencies from
workspace:0.0.0to the root package.json version - publishes the module using
pnpm publish