diff --git a/.travis.yml b/.travis.yml index 17770e1..9416441 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,10 @@ node_js: - 10 - node env: - - NODE_ENV=production + global: + - NODE_ENV=production + - NPM_TAG=latest + - RELEASE_TIMESTAMP="$(date +'%Y%m%d%H%M%S')" install: - npm --production=false install - npm --production=false update @@ -24,16 +27,36 @@ jobs: node_js: 10 script: npm run build before_deploy: - - VPKG=$($(npm bin)/json -f package.json version) - - export VERSION=${VPKG}-prerelease.$(date +%Y%m%d%H%M%S) - - npm --no-git-tag-version version $VERSION - - git config --global user.email "$(git log --pretty=format:'%ae' -n1)" - - git config --global user.name "$(git log --pretty=format:'%an' -n1)" + - > + if [ -z "$BEFORE_DEPLOY_RAN" ]; then + VPKG=$($(npm bin)/json -f package.json version) + export RELEASE_VERSION=${VPKG}-prerelease.${RELEASE_TIMESTAMP} + npm --no-git-tag-version version $RELEASE_VERSION + if [[ "$TRAVIS_BRANCH" == hotfix/* ]]; then # double brackets are important for matching the wildcard + export NPM_TAG=hotfix + fi + git config --global user.email "$(git log --pretty=format:"%ae" -n1)" + git config --global user.name "$(git log --pretty=format:"%an" -n1)" + export BEFORE_DEPLOY_RAN=true + fi deploy: - provider: npm + - provider: npm + on: + branch: + - master + - develop + - hotfix/* + condition: $TRAVIS_EVENT_TYPE != cron skip_cleanup: true - "on": - all_branches: true - condition: $RELEASE_BRANCHES =~ $TRAVIS_BRANCH email: $NPM_EMAIL api_key: $NPM_TOKEN + tag: $NPM_TAG + - provider: script + on: + branch: + - master + - develop + - hotfix/* + condition: $TRAVIS_EVENT_TYPE != cron + skip_cleanup: true + script: if npm info | grep -q $RELEASE_VERSION; then git tag $RELEASE_VERSION && git push https://${GH_TOKEN}@github.com/${TRAVIS_REPO_SLUG}.git $RELEASE_VERSION; fi