From 2d03dc5dad948f66160a8eeb4d35bf0fad6743dc Mon Sep 17 00:00:00 2001 From: Pat Cavit Date: Fri, 24 Mar 2017 14:41:22 -0700 Subject: [PATCH] feat: partial integrate of release changes --- .travis.yml | 81 +++++++++++++++++++++++++++++------------------ docs/releasing.md | 14 ++++---- package.json | 6 ++-- 3 files changed, 62 insertions(+), 39 deletions(-) diff --git a/.travis.yml b/.travis.yml index 928e22d2..23038278 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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 diff --git a/docs/releasing.md b/docs/releasing.md index 442feb72..eadab31b 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -4,14 +4,14 @@ Releasing new builds of mithril is mostly automated via `npm version` ## Publishing to NPM -1. `npm version -m "v%s"` +1. `npm run release ` 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` diff --git a/package.json b/package.json index f6ba04f1..4af3b9da 100644 --- a/package.json +++ b/package.json @@ -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": {