diff --git a/.build/pre-release.ps1 b/.build/pre-release.ps1 new file mode 100644 index 0000000..0cf8025 --- /dev/null +++ b/.build/pre-release.ps1 @@ -0,0 +1,7 @@ +$timestamp = Get-Date -Format yyyyMMddhhmmss +$patchVersion = (npm --no-git-tag version patch) +$nextVersion = "${patchVersion}-next.${timestamp}".Substring(1) +echo $nextVersion + +npm version --no-git-tag -f $nextVersion +npm run publish:next diff --git a/.build/pre-release.sh b/.build/pre-release.sh new file mode 100644 index 0000000..ef9b5a8 --- /dev/null +++ b/.build/pre-release.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -ex + +patchVersion=$(npm --no-git-tag version patch) +nextVersion=${patchVersion}-next."$(date +%Y%m%d%H%M%S)" +echo "${nextVersion:1}" + +npm version --no-git-tag -f "${nextVersion:1}" +npm run publish:next diff --git a/.build/release.ps1 b/.build/release.ps1 new file mode 100644 index 0000000..8ee1bc7 --- /dev/null +++ b/.build/release.ps1 @@ -0,0 +1 @@ +npm publish diff --git a/.build/release.sh b/.build/release.sh new file mode 100644 index 0000000..360be59 --- /dev/null +++ b/.build/release.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -ex + +npm publish diff --git a/.travis.yml b/.travis.yml index c283fd8..4ebcac4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,21 +36,29 @@ install: true script: - npm run patch && npm i - - if [[ $TRAVIS_OS_NAME = "windows" ]]; then npm run build:release:win; else npm run build:release; fi + - npm run build:release - cd test - npm cit - cd window-integration-tests - npm cit - cd ../.. +stages: + - test + - name: deploy + if: (branch = develop) OR (tag IS present) + before_deploy: - echo "//registry.npmjs.org/:_authToken=\${NPM_TOKEN}" >> $HOME/.npmrc 2> /dev/null deploy: - provider: script - skip_cleanup: true - script: npm publish --access public + skip_cleanup: false + script: bash ./.build/pre-release.sh + on: + branch: develop + - provider: script + skip_cleanup: false + script: bash ./.build/release.sh on: tags: true - node_js: '12' - diff --git a/README.md b/README.md index 3425b46..73c9bed 100644 --- a/README.md +++ b/README.md @@ -22,23 +22,9 @@ npm install npm run build:release ``` -Installation and build on Windows - -``` -npm install -npm run build:release:win -``` - ### Debug build ``` npm install npm run build:debug ``` - -Installation and build on Windows - -``` -npm install -npm run build:debug:win -``` diff --git a/appveyor.yml b/appveyor.yml index d115fe5..1c977f0 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -5,8 +5,7 @@ image: Visual Studio 2017 # Test against these versions of Io.js and Node.js. environment: matrix: - # node.js - - nodejs_version: "10" + - nodejs_version: "12" cache: - node_modules @@ -25,7 +24,7 @@ install: - ps: '"//registry.npmjs.org/:_authToken=$env:npm_auth_token`n" | out-file "$env:userprofile\.npmrc" -Encoding ASCII' - npm whoami - npm run patch && npm install - - npm run build:release:win + - npm run build:release test_script: # Output useful info for debugging. @@ -42,5 +41,15 @@ test_script: on_success: - IF defined APPVEYOR_REPO_TAG_NAME npm publish +deploy: + - provider: script + path: ./.build/release.ps1 + on: + APPVEYOR_REPO_TAG: true + - provider: script + path: ./.build/pre-release.ps1 + on: + branch: develop + build: off version: "{build}" diff --git a/package-lock.json b/package-lock.json index c76a849..0324458 100644 --- a/package-lock.json +++ b/package-lock.json @@ -790,6 +790,12 @@ "glob": "^7.0.5" } }, + "run-script-os": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/run-script-os/-/run-script-os-1.1.1.tgz", + "integrity": "sha512-tM3mfchUIpo9WOFioO3eO/lTgRbtqcqBmSkkqfkjXmxn7vvhwykOXxOOKIXFP+ZConvLsS5KskM3yX+XBfDD4g==", + "dev": true + }, "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", diff --git a/package.json b/package.json index 99c6d15..6a328a6 100644 --- a/package.json +++ b/package.json @@ -7,10 +7,14 @@ "scripts": { "clean": "cmake-js clean", "patch": "node ./patch-packagename.js", - "build:debug": "cmake-js rebuild --debug", - "build:debug:win": "cmake-js rebuild --debug -G \"Visual Studio 15 2017 Win64\"", - "build:release": "cmake-js rebuild", - "build:release:win": "cmake-js rebuild -G \"Visual Studio 15 2017 Win64\"" + "build:debug": "run-script-os", + "build:debug:default": "cmake-js rebuild --debug", + "build:debug:win32": "cmake-js rebuild --debug -G \"Visual Studio 15 2017 Win64\"", + "build:release": "run-script-os", + "build:release:default": "cmake-js rebuild", + "build:release:win32": "cmake-js rebuild -G \"Visual Studio 15 2017 Win64\"", + "prepublishOnly": "npm run build:release", + "publish:next": "npm publish --tag next" }, "repository": { "type": "git", @@ -41,5 +45,8 @@ }, "engines": { "node": ">=10.15.3" + }, + "devDependencies": { + "run-script-os": "1.1.1" } }