如何检查 master 分支是否在 Travis 下使用标签推送?

How to check if master branch pushed with a tag under Travis?

我想在 Travis 上做一些额外的测试,但我只想检查提交是否直接推送到 master 分支并且提交是否带有标签?有没有办法在 yaml 文件中检查 Travis 上的标签?

在构建期间,travis 设置了一些有用的环境变量,这些变量可以在您的脚本中使用,也可以在 yml 文件中使用。 https://docs.travis-ci.com/user/environment-variables#Default-Environment-Variables

示例:

script:
    - if [ "$TRAVIS_BRANCH" = "master" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then something on direct push to master; fi
    - if [ ! "$TRAVIS_PULL_REQUEST" = "false" ]; then something on pull request; fi
    - if [ -n "$TRAVIS_TAG" ]; then something when tag set; fi

Travis 运行 按照脚本标签中定义的顺序执行命令,因此您可以在构建时构建一些依赖于环境变量的逻辑

正如 Slawomir Jaranowski 所描述的,travis 提供了描述提交的环境变量。

Travis 的默认便利环境变量会告诉您分支名称或标签。 Travis 不会在标记的构建中为您提供分支名称,但如果您需要分支和标记,您可以 get it for yourself