feat: partial integrate of release changes

This commit is contained in:
Pat Cavit 2017-03-24 14:41:22 -07:00
parent d31e0a88f8
commit 2d03dc5dad
3 changed files with 62 additions and 39 deletions

View file

@ -10,10 +10,10 @@ cache:
directories:
- node_modules
# Custom install step so the travis scripts don't need to be in package.json
# Custom install step so the travis-only stuff doesn't need to be in package.json
install:
- npm install
- npm install @alrra/travis-scripts@^3.0.1
- npm install @alrra/travis-scripts@^3.0.1 gh-pages@^0.12.0
# Bundle before running tests so the bundle is always up-to-date
before_script: npm run build
@ -21,48 +21,67 @@ before_script: npm run build
# This is the default, but leaving so it is obvious
# script: npm test
# After a successful build create bundles & commit back to the repo
# After a successful build commit changes back to repo
after_success:
- |
# Set up SSH environment
$(npm bin)/set-up-ssh \
--key "$encrypted_8b86e0359d64_key" \
--iv "$encrypted_8b86e0359d64_iv" \
--path-encrypted-key "./.deploy.enc"
# Commit bundle changes generated in before_script step
# --commands is a weird no-op but required for commit-changes to run
# --branch arg is to ensure this only runs against the `next` branch
$(npm bin)/commit-changes \
--commands "echo committing" \
--commit-message "Bundled output for commit $TRAVIS_COMMIT [skip ci]" \
--branch "next"
# Only want to commit when building a push on whatever $BRANCH is
# Only want to commit docs when building pushes on master &
# this doesn't have the built-in branch protection like commit-changes
if [ "$TRAVIS_EVENT_TYPE" == "push" ] && \
[ "$TRAVIS_BRANCH" == "$BRANCH" ] && \
[ "$TRAVIS_REPO_SLUG" == "$REPO" ]
[ "$TRAVIS_BRANCH" == "master" ] && \
[ "$TRAVIS_REPO_SLUG" == "lhorie/mithril.js" ]
then
# Set up SSH environment
$(npm bin)/set-up-ssh \
--key "$encrypted_8b86e0359d64_key" \
--iv "$encrypted_8b86e0359d64_iv" \
--path-encrypted-key "./.deploy.enc"
# Generate docs
$(npm-bin) run gendocs
# Commit changes (if there were any) from running build earlier
$(npm bin)/commit-changes \
--commands "echo committing" \
--commit-message "Bundled output for commit $TRAVIS_COMMIT [skip ci]" \
--branch "$BRANCH"
# Commit docs to gh-pages branch
# Using --add to ensure that archived versions aren't lost
# Using --repo to force it to go over SSH so the saved keys are used (tschaub/gh-pages#160)
$(npm bin)/gh-pages --dist ./dist --add --repo "git@github.com:lhorie/mithril.js.git"
else
echo "Not submitting build artifacts"
echo "Not submitting documentation updates"
fi
# Environment configuration
env:
global:
# Restrict the branch this will activate on
- BRANCH=rewrite
- REPO=lhorie/mithril.js
# Set up GH_USER_EMAIL & GH_USER_NAME env variables used by travis-scripts package
- secure: Xvqvm3+PvJu/rs3jl/NNn0RWLkkLkIoPHiL0GCfVRaywgjCYVN02g54NVvIDaOfybqPmu9E6PJFVs92vhF34NMFQHf4EWskynusIGV271R2BV0i+OJBfLMuLgiwm6zRn7/Zw4JvWIUGEwcnlz0qxbqdHsS0SOR3fIkFzePickW0=
- secure: Rf/ldEO9d4vItJhe6EmqWpFAyCARzoCb422nHnjr1hYJknnwIXpgyZ1C/7On/9o7rWPPf+8WcHC/rgjK2rthKCldzdG5I60LfWSNzap9lk3Aa4TpSCoDBuEp7JVvDr5tc3rKnBXVT71hOay7RSx1StWzXiJs9mjaeVMJzYzRT78=
# Deploy to npm on tagged commits that successfully build
# Deploy to npm and github pages on tagged commits that successfully build
deploy:
provider: npm
email: npm@patcavit.com
skip_cleanup: true
api_key:
secure: ADElvD1oxn9GfEG7dDOggX96b36A/cGEybovAc0221CCKzv5kWCavMrtxneiJYI6N/n24abSlbM90vMfU84FEzH0Ev28dGVokRP4ad6VRkISszKlYVEP8Lds4QxfKh78jZlUxmxM0B3vmQ1kYJbTBqp3ICtaJ5ptEQHWhrLtxnc=
on:
tags: true
repo: lhorie/mithril.js
- provider: releases
api_key:
secure: PauFuz+pn7oRpHn2JTl4k3+iWjOofyBYBvavPQVNdXgKws9mGj0i2n5k2oIDU09VD7NeyEkwP6tdLCUFNaR8uwTJH/TBXMZE95oxUEaliFreA0nOiI3WkG4NCW0GwUoIIn1yL14y6+9oEBinWUia8DIn9kZNS11DNDgQpIPnoQQ=
file:
- "mithril.js"
- "mithril.min.js"
skip_cleanup: true
on:
tags: true
repo: lhorie/mithril.js
branch: master
- provider: npm
skip_cleanup: true
email: npm@patcavit.com
api_key:
secure: ADElvD1oxn9GfEG7dDOggX96b36A/cGEybovAc0221CCKzv5kWCavMrtxneiJYI6N/n24abSlbM90vMfU84FEzH0Ev28dGVokRP4ad6VRkISszKlYVEP8Lds4QxfKh78jZlUxmxM0B3vmQ1kYJbTBqp3ICtaJ5ptEQHWhrLtxnc=
on:
tags: true
repo: lhorie/mithril.js
branch: master

View file

@ -4,14 +4,14 @@ Releasing new builds of mithril is mostly automated via `npm version`
## Publishing to NPM
1. `npm version <major|minor|patch|semver> -m "v%s"`
1. `npm run release <major|minor|patch|semver>`
All further steps are automated and run as follows:
2. Tests are run
3. Linting is run (but doesn't fail build)
4. Version number in package.json is incremented
5. New bundles are generated using updated version
2. New bundles are generated using updated version
3. Tests are run
4. Linting is run (but doesn't fail build)
5. Version number in package.json is incremented
6. `git add` called on bundle output
7. `package.json` and updated bundles are committed to git
8. previous commit is tagged using new version number
@ -27,7 +27,9 @@ All further steps are automated and run as follows:
## Publishing a GitHub release
**TODO**
Happens automatically as part of the [Publishing to NPM](#publishing-to-npm) process described above.
Does require a manual description to be added though, as the auto-generated one isn't very interesting.
## Updating `docs/change-log.md`

View file

@ -1,6 +1,6 @@
{
"name": "mithril",
"version": "1.0.0",
"version": "1.0.1",
"description": "A framework for building brilliant applications",
"author": "Leo Horie",
"license": "MIT",
@ -14,11 +14,13 @@
"lintdocs": "node docs/lint",
"gendocs": "node docs/generate",
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"test": "node ospec/bin/ospec",
"posttest": "npm run lint || true",
"cover": "istanbul cover --print both ospec/bin/ospec",
"release": "npm version -m 'v%s'",
"preversion": "npm run test",
"version": "npm run build && npm run gendocs && git add mithril.js mithril.min.js",
"version": "npm run build && git add mithril.js mithril.min.js",
"postversion": "git push --follow-tags"
},
"devDependencies": {