cli
cli copied to clipboard
Automate release process
For now, if you wish to publish a new release of the CLI you need to:
git checkout mainnpm run releasefor a full release (ornpm run release -- --tag betafor a prerelease where--tagis the dist tag of your choice)- The script above will prompt for the version upgrade you desire (patch, minor or major)
- Then it will do all this for you:
- Check your in the right place
- Check the version your trying to publish doesn't exist yet
- Re-install npm dependencies from scratch
- Run tests
- Bump version with
npm version ... - Publish package on npm
- Push a git tag
v<version>
- Wait for the CI to run on the pushed git tag (the CI will create a draft github release with standalone tarballs attached to it)
- Edit the newly created draft release to write release notes :memo: and publish the github release :rocket:
Package distribution
With the above process we will only distribute a NPM package + standalone tarballs on the Github Release. For the future we will need to distribute packages in common package managers (Homebrew, .deb, .rpm & .aur, Docker, Nix, Snap ...?)
I've had a lot of success with semantic-release, automatically creating major, minor, or patch releases based on the commits that come in. I'd be happy to take a swing at setting that up if you like.