24

I want to kick off an npm deployment when a tag, that looks like a semantic version, is pushed, e.g. v1.2.3. I see that the tag name is in the TRAVIS_TAG environment variable and that I can specify an on: condition, which "can be any Bash condition". I have no idea what to write here and how to debug it.

- provider: npm on: tags: true all_branches: true condition: ???

Ideally, I would like to not bother with Bash at all - I would like the condition to execute a Node.js script and then decide whether to deploy or not depending on the node exit code. How can I do that?

Stefan Dragnev
  • 14,143
  • 6
  • 48
  • 52

2 Answers2

21

Simplest way would still be with bash, this example will deploy only if tag name matches the regex "release.*":

on:
    tags: true
    all_branches: true
    condition: "$TRAVIS_TAG =~ ^release.*$"

Check out this link for more info on travis environment variables: http://docs.travis-ci.com/user/ci-environment/#Environment-variables

eshirazi
  • 2,773
  • 1
  • 14
  • 13
6

eshizari's answer didn't work for me. This is the approach that I'm using instead:

on:
  all_branches: true
  condition: $TRAVIS_TAG =~ ^v[0-9]+\.[0-9]+\.[0-9]+
Brad Larson
  • 170,088
  • 45
  • 397
  • 571
pomber
  • 23,132
  • 10
  • 81
  • 94