Publish dist
A CLI tool that commits and pushes dist
if the last commit was not made by
itself. Intended to be used as part of semantic-release.
Example package.json
:
{
"name": "my-app",
"scripts": {
"build": "make",
"publish-dist": "npm run build && publish-dist",
"semantic-release": "semantic-release pre && npm run publish-dist && npm publish && semantic-release post"
},
"repository": {
"url": "https://github.com/me/my-app"
},
"author": "Tom Vincent <[email protected]>"
}
At minimum, publish-dist expects:
dist
to exist before it is ran- The environment variable
CI_USER_TOKEN
to be set - To be using the
master
branch
Want semantic-release to build and commit dist? Here's one approach:
- Initialise semantic-release with your repo as normal
- Generate a new GitHub access token (only repo/public_repo scope is required)
- Run
travis env set CI_USER_TOKEN [token]
- Add a npm build script that's suitable for your project
- Add
publish-dist
as a dev dependency - Add it as an npm deploy script
- Add a predeploy script that runs the npm build script
- Call
npm run deploy
aftersemantic-release pre
That's it!
See tlvince/tlvince-semantic-release-push-dist as a working example.
Pro tip: create a machine/bot account on GitHub (generate a access token
for this account) and add it as a collaborator (with push access) to your repo.
Don't forget to pass --author-name
and --author-email
.
The commit's author name (git config user.name
). Defaults to .package.json
author
.
The commit's author email (git config user.email
). Defaults to .package.json
author
.
© 2015 Tom Vincent https://tlvince.com/contact
Released under the MIT License.