From 74c6b3e97b5d4897208d630bbfc71224b5895afd Mon Sep 17 00:00:00 2001 From: Pat Cavit Date: Fri, 13 Jan 2017 20:08:36 -0800 Subject: [PATCH] refactor: Use Travis for npm publishing (#1538) --- .travis.yml | 33 +++++++++++++++++++-------- package.json | 64 ++++++++++++++++++++++++++++------------------------ 2 files changed, 58 insertions(+), 39 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4d118c54..b07379a3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,31 +1,33 @@ sudo: false +# Only care about running tests against latest node language: node_js node_js: - node +# Keep node_modules around, it speeds up builds & they don't change often cache: directories: - node_modules # Custom install step so the travis scripts don't need to be in package.json install: - - npm install - - npm install @alrra/travis-scripts@^3.0.1 +- npm install +- npm install @alrra/travis-scripts@^3.0.1 -# Lint (but don't fail build) before running tests -before_script: npm run lint || true +# Bundle before running tests so the bundle is always up-to-date +before_script: npm run build -# Run more than just npm test -script: npm run build && npm test +# 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_success: - | - # Only want to commit things on commits to $BRANCH + # Only want to commit things on $BRANCH if [ "$TRAVIS_EVENT_TYPE" == "pull_request" ] || [ "$TRAVIS_BRANCH" != "$BRANCH" ]; then - echo "Artifacts only built on $BRANCH" + echo "Artifacts only committed on $BRANCH" exit 0 fi @@ -34,10 +36,11 @@ after_success: --iv "$encrypted_8b86e0359d64_iv" \ --path-encrypted-key "./.deploy.enc" - # Build & commit changes + # Commit changes (if there were any) from running build earlier $(npm bin)/commit-changes --commit-message "Bundled output for commit $TRAVIS_COMMIT [skip ci]" \ --branch "$BRANCH" +# Environment configuration env: global: # Restrict the branch this will activate on @@ -46,3 +49,15 @@ env: # 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: + provider: npm + email: npm@patcavit.com + skip_cleanup: true + api_key: + secure: ADElvD1oxn9GfEG7dDOggX96b36A/cGEybovAc0221CCKzv5kWCavMrtxneiJYI6N/n24abSlbM90vMfU84FEzH0Ev28dGVokRP4ad6VRkISszKlYVEP8Lds4QxfKh78jZlUxmxM0B3vmQ1kYJbTBqp3ICtaJ5ptEQHWhrLtxnc= + on: + tags: true + repo: lhorie/mithril.js + branch: rewrite diff --git a/package.json b/package.json index 67e97f8b..1cd09471 100644 --- a/package.json +++ b/package.json @@ -1,32 +1,36 @@ { - "name": "mithril", - "version": "1.0.0-rc.7", - "description": "A framework for building brilliant applications", - "author": "Leo Horie", - "license": "MIT", - "main": "index.js", - "repository": "lhorie/mithril.js", - "scripts": { - "dev": "node bundler/cli browser.js -o mithril.js -w", - "build": "npm run build-browser & npm run build-min", - "build-browser": "node bundler/cli browser.js -o mithril.js", - "build-min": "node bundler/cli browser.js -o mithril.min.js -m", - "lintdocs": "node docs/lint", - "gendocs": "node docs/generate", - "lint": "eslint .", - "test": "node ospec/bin/ospec", - "cover": "istanbul cover --print both ospec/bin/ospec" - }, - "devDependencies": { - "eslint": "^2.10.2", - "istanbul": "^0.4.3", - "marked": "^0.3.6" - }, - "publishConfig": { - "tag": "rewrite" - }, - "bin": { - "ospec": "./ospec/bin/ospec", - "bundle": "./bundler/bin/bundle" - } + "name": "mithril", + "version": "1.0.0-rc.7", + "description": "A framework for building brilliant applications", + "author": "Leo Horie", + "license": "MIT", + "main": "index.js", + "repository": "lhorie/mithril.js", + "scripts": { + "dev": "node bundler/cli browser.js -o mithril.js -w", + "build": "npm run build-browser & npm run build-min", + "build-browser": "node bundler/cli browser.js -o mithril.js", + "build-min": "node bundler/cli browser.js -o mithril.min.js -m", + "lintdocs": "node docs/lint", + "gendocs": "node docs/generate", + "lint": "eslint .", + "test": "node ospec/bin/ospec", + "posttest": "npm run lint || true", + "cover": "istanbul cover --print both ospec/bin/ospec", + "preversion": "npm run test", + "version": "npm run build && git add mithril.js mithril.min.js", + "postversion": "git push --follow-tags" + }, + "devDependencies": { + "eslint": "^2.10.2", + "istanbul": "^0.4.3", + "marked": "^0.3.6" + }, + "publishConfig": { + "tag": "rewrite" + }, + "bin": { + "ospec": "./ospec/bin/ospec", + "bundle": "./bundler/bin/bundle" + } }