我有一个看似正常的Travis.CI构建矩阵,我正在使用部署到Github Releases。我的矩阵中有一个额外的元素,用于构建和打包源包,我只想在推送标签时构建它。
当构建不是标记构建时,有没有办法跳过构建矩阵中的构建?
我尝试过这样的东西,但它没有用。它仍然每次构建源,这是多余的。
matrix:
include:
- os: linux
env: DEPLOY=binary
- os: osx
env: DEPLOY=binary
- os: linux
env: DEPLOY=source
on:
tags: true # <- try and skip this job for non-tag builds (doesn't work!)
[...]
deploy:
provider: releases
on:
tags: true
答案 0 :(得分:4)
不幸的是,由于构建矩阵的方式,目前无法实现。我能想到的唯一解决方案是检查您想要跳过的作业中的TRAVIS_TAG
环境变量,而不是在那里运行测试。我知道这有一些缺点,因为我们仍然会创建和运行构建,但至少它会很快。
答案 1 :(得分:0)
我知道这是很久以前的事了,但为了将来参考,它对我有用:if: tag IS present
。所以您的矩阵将是:
matrix:
include:
- os: linux
env: DEPLOY=binary
- os: osx
env: DEPLOY=binary
- os: linux
env: DEPLOY=source
if: tag IS present