Как заставить Трэвиса использовать сценарий сцены вместо сценария узла по умолчанию - PullRequest
0 голосов
/ 03 февраля 2019

Мы хотим создать приложение nodeJS, используя travis-ci в качестве CI / CD.

Сначала мы спроектировали наш конвейер следующим образом:

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

Он работал хорошо и произвел 2 travisсборки, по одной для каждой версии узла, с выполнением нашего пользовательского определения сценария (install, lint затем test:ci)

Затем мы попытались улучшить наш процесс, добавив шаг сборки докера

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 запускает наш требуемый сценарий install, lint затем test:ci

И еще один отдельный этап для dockerbuild.

Почему travis игнорирует наш пользовательский скрипт и запускает некоторые параллельные задания, выполняющие тестовый скрипт по умолчанию для nodeJS?

И как заставить travis использовать нашпользовательский скрипт во всех протестированных версиях узла?

...