如何在Travis CI上仅针对稳定的Rust构建master?

时间:2018-07-31 16:04:32

标签: rust travis-ci

我目前针对stablebeta都构建了一个Rust应用程序。分支调试版本相当快-5分钟-但发行版本可以达到45分钟。我目前有一个带薪水的特拉维斯计划,有两个同时工作。同时针对稳定版和Beta版进行构建意味着在45分钟内没有其他CI作业执行。

我只关心stable作业中的构建工件。如何从主版本和标记版本中排除beta

我的.travis.yml:

sudo: false
language: rust
rust:
- stable
- beta

matrix:
  fast_finish: true
  allow_failures:
    rust:
    - beta

cache:
  cargo: true
  timeout: 600

script:
- make pkginfo
- make test

我认为我需要对matrix进行修改,但是Build Matrix文档并不清楚如何做到这一点。

1 个答案:

答案 0 :(得分:1)

您可以将rust工具链定义分别移至构建矩阵和specify which branches to build中。借助分支黑名单和用于捕获带标记的提交的正则表达式(假设格式为v#.#.#),我们得到以下信息:

sudo: false
language: rust

matrix:
  fast_finish: true
  include:
  - rust: stable
  - rust: beta
    branches:
    except:
    - master
    - /^v\d+\.\d+(\.\d+)?(-\S*)?$/
  allow_failures:
    rust:
    - beta

cache:
  cargo: true
  timeout: 600

script:
- make pkginfo
- make test