条件构建、阶段和作业
您可以通过在构建配置(您的 .travis.yml
文件)中指定条件来过滤和拒绝构建、阶段和作业。
您可以在我们的 Travis CI 构建配置参考 中找到有关构建配置格式的更多信息。
条件构建 #
您可以将 Travis CI 配置为仅在满足某些条件时才运行构建。任何不满足这些条件的构建都将列在您存储库的“请求”选项卡中,即使实际上没有生成构建。
Travis CI 的系统从存储库中提取并处理 .travis.yml 配置文件,以及构建请求中明确指定的 branch。
例如,这允许仅在 master
分支上运行构建
# require the branch name to be master (note for PRs this is the base branch name)
if: branch = master
不匹配条件的构建请求不会生成构建,但会列在“请求”选项卡中。
条件阶段 #
您可以将 Travis CI 配置为仅在满足某些条件时才包含阶段。不匹配给定条件的阶段将被静默跳过。例如,这允许仅在 master
分支上运行部署阶段
stages:
- name: deploy
# require the branch name to be master (note for PRs this is the base branch name)
if: branch = master
不匹配条件的阶段将被静默跳过。
条件作业 #
您可以将 Travis CI 配置为仅在满足某些条件时才包含作业。例如,这仅在 master
分支上构建列出的作业
jobs:
include:
- # require the branch name to be master (note for PRs this is the base branch name)
if: branch = master
env: FOO=foo
为了为作业指定条件,需要显式列出作业,即使用 jobs.include
(或其别名 matrix.include
)。通过 矩阵扩展 创建的作业目前无法指定条件,但可以有条件地排除(参见 下面)。
不匹配条件的作业将被静默跳过。
有条件地排除作业 #
您可以将 Travis CI 配置为在满足某些条件时排除作业。例如,这将在所有分支上创建两个作业,但在 master
分支上仅创建一个作业(带有 env 变量 ONE=one
)
env:
- ONE=one
- TWO=two
jobs:
exclude:
- if: branch = master
env: TWO=two
有条件地允许作业失败 #
您可以将 Travis CI 配置为仅在满足某些条件时才允许作业失败。例如,这将允许在分支 dev
上运行构建时,带有 env 变量 TWO=two
的作业失败
env:
- ONE=one
- TWO=two
jobs:
allow_failures:
- if: branch = dev
env: TWO=two
指定条件 #
请参阅 条件 以获取示例和条件语法的规范。
测试条件 #
可以使用 travis-conditions
命令测试条件。了解如何 测试您的条件。