From be19a5a0b65845b17441c69a1b641168b2cebd12 Mon Sep 17 00:00:00 2001 From: Rick Harrison Date: Wed, 20 Jul 2016 14:29:51 -0700 Subject: [PATCH] Adds npm publish script. --- .gitignore | 1 + .npmignore | 9 +++++++++ scripts/release.js | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 .npmignore create mode 100644 scripts/release.js diff --git a/.gitignore b/.gitignore index 445c0dd..9304cfc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules .nyc_output coverage.lcov +coverage diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..416ff98 --- /dev/null +++ b/.npmignore @@ -0,0 +1,9 @@ +node_modules +.nyc_output +coverage.lcov +coverage + +.eslintrc +circle.yml +scripts +tests diff --git a/scripts/release.js b/scripts/release.js new file mode 100644 index 0000000..9a12e51 --- /dev/null +++ b/scripts/release.js @@ -0,0 +1,34 @@ +'use strict'; + +/* eslint no-console: 0, no-sync: 0, no-process-exit: 0 */ + +const execSync = require('child_process').execSync; +const fs = require('fs'); +const packageJson = require('../package.json'); + +const nextVersion = process.argv[process.argv.length - 1]; +const nextRef = `v${nextVersion}`; +const semverRegex = /[0-9]+\.[0-9]+\.[0-9](-.+)?/ig; + +function validateSemver (version) { + if (!semverRegex.test(version)) { + console.error(`Version ${version} is not valid! It must be a valid semver string`); + process.exit(1); + } +} + +validateSemver(nextVersion); + +console.log(`Current Version: ${packageJson.version}`); +console.log(`Next Version: ${nextVersion}`); + +packageJson.version = nextVersion; + +fs.writeFileSync('package.json', `${JSON.stringify(packageJson, null, 2)}\n`, 'utf8'); + +execSync(`git commit -am 'Release Version: ${nextRef}'`); +execSync(`git tag ${nextRef}`); +execSync('git push origin master'); +execSync(`git push origin ${nextRef}`); + +execSync('npm publish', { stdio: [0, 1, 2] });