条件构建、阶段和作业

您可以通过在构建配置(您的 .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 命令测试条件。了解如何 测试您的条件