当我们为我们的产品削减发布分支时,我们将其版本化为:
释放/ X.X.X
是否有一种方法可以将travis.yml文件设置为匹配正则表达式模式的deploy on branch
?
travis.yml片段:
provider: script
script: bash dockerbuildandpush.sh
on:
branch: /^release\/.*$/
上述代码段不起作用。任何帮助,将不胜感激。
答案 0 :(得分:3)
想出来。把它留给那些试图做同样事情的人。
provider: script
script: bash dockerbuildandpush.sh
on:
all_branches: true
condition: ${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH} =~ ^release\/.*$
${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH}
的说明可以在这里找到:
https://github.com/travis-ci/travis-ci/issues/6652
https://graysonkoonce.com/getting-the-current-branch-name-during-a-pull-request-in-travis-ci/
答案 1 :(得分:2)
我还需要仅在匹配正则表达式的分支上进行部署。
我的检查如下:
1.0.0
还是0.4.3
?如果这两个检查匹配,我可以使用标签发布版本安全部署。
.travis.yml
的有趣部分:
deploy:
skip_cleanup: true
provider: pypi
distributions: sdist bdist_wheel
on:
tags: true
branch:
- master
- /(\d+\.)?(\d+\.)?(\*|\d+)$/
希望这有帮助。
度过愉快的一天。
答案 2 :(得分:0)
要有条件地运行部署脚本,请仅在与正则表达式匹配的分支(例如,发布分支为^release\/.*$
)上说,使用条件字段并使用&&连接多个条件。 branch
字段不支持正则表达式。
如果未指定branch
或branches
字段,则travis假定其位于master分支(或默认分支)上。因此,请确保在travis配置中包含all_branches: true
行。
您可以使用travis env变量$TRAVIS_BRANCH
访问当前分支名称。
deploy:
- provider: script
script: bash myscript.sh
verbose: true
on:
all_branches: true
condition: $TRAVIS_BRANCH =~ ^release\/.*$ && $TRAVIS_OS_NAME = linux