How to start Travis CI deploy only when tag name matches a regex

风流意气都作罢 提交于 2019-12-04 08:54:10

问题


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?


回答1:


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




回答2:


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]+


来源:https://stackoverflow.com/questions/24679889/how-to-start-travis-ci-deploy-only-when-tag-name-matches-a-regex

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!