如何使travis使用舞台脚本而不是默认节点脚本

时间:2019-02-03 14:18:11

标签: travis-ci

我们要使用travis-ci作为CI / CD构建一个nodeJS应用。

我们首先将管道设计如下:

language: node_js
sudo: false
node_js:
  - 'lts/carbon'
  - 'lts/*'
script:
  - yarn install
  - yarn lint
  - yarn test:ci

它运行良好,并生成了2个travis构建,每个节点版本一个,运行我们的自定义脚本定义(installlint然后是test:ci

然后我们尝试改善我们的流程,以添加docker构建步骤

language: node_js
sudo: false
node_js:
  - 'lts/carbon'
  - 'lts/*'
services:
  - docker
stages:
  - test
  - dockerbuild
jobs:
  include:
    - stage: test
      script:
        - yarn install
        - yarn lint
        - yarn test:ci
    - stage: dockerbuild
      if: branch = master
      script:
        - docker build -t our-package .

我们遇到了第二个定义的问题。

Travis产生3个并行作业:

  • 一个用于lts/carbon运行默认travis测试脚本的程序:yarn test
  • 一个用于lts/*运行默认travis测试脚本的程序:yarn test
  • 一个用于lts/carbon运行我们想要的脚本installlint然后运行test:ci

还有一个单独的dockerbuild阶段。

为什么travis会忽略我们的自定义脚本并触发一些运行默认nodeJS测试脚本的并行作业?

以及如何强制travis在所有经过测试的节点版本中使用我们的自定义脚本?

0 个答案:

没有答案