【问题标题】:Use matrix build in Travis only on deploy仅在部署时在 Travis 中使用矩阵构建
【发布时间】:2016-05-27 22:33:05
【问题描述】:

有没有办法只在部署时在 travis 中运行矩阵构建?现在我们使用相同的.travis.yml 文件进行测试和部署,并且在这两种情况下都会触发矩阵构建(因此会触发两个工作人员)。我无法找到一种方法,仅在我们正在部署的情况下而不是在我们运行测试的情况下将构建作为矩阵运行(或者可能仅在部署过程中使用矩阵)。我想这样做的主要原因是为了在创建 PR 时不会触发额外的构建,而我只需要运行测试构建。

我也找不到一种简单的方法,我们可以为 npm install/npm test 运行单个构建,然后为“部署”过程分拆两个单独的工作程序/一个矩阵,这也可以解决问题。

这是我当前的 .travis.yml 文件的片段:

language: node_js
node_js: 4.2.1
env:
  global:
    - APP_NAME=example
  matrix:
    - CF_DOMAIN=example1.net CF_TARGET=https://target1.com APP_NAME=${APP_NAME}-1
    - CF_DOMAIN=example2.net CF_TARGET=https://target2.com APP_NAME=${APP_NAME}-2

branches:
  only:
    - master
deploy:
- provider: script
  skip_cleanup: true
  script: node_modules/.bin/deploy.sh
  on:
    branch: master

我们也可以只在 push 钩子上运行矩阵构建,而不是在 pr 上运行。

【问题讨论】:

    标签: build continuous-integration travis-ci


    【解决方案1】:

    在 GitHub 上针对 Travis 发布了一个类似的问题。建议使用两个单独的 .travis.yml 文件。

    https://github.com/travis-ci/travis-ci/issues/2778

    【讨论】:

    • 对,两个分支中的两个配置将部署到两个不同的地方,并且可能有不同的行为,但我不想在两个地方维护同一段代码以及两个不同的配置文件。我希望可以有一个配置文件来指示矩阵构建应该作为push 的一部分运行,而不是作为pr 的一部分。
    猜你喜欢
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多