Как заставить TravisCI параллельно выполнять поток / тестирование / очистку? - PullRequest
0 голосов
/ 01 мая 2018

В моем .travis.yml у меня есть это.

script:
- yarn lint    
- yarn flow  
- yarn test --runInBand   

Мне было интересно, есть ли способ заставить их работать параллельно?

Ответы [ 2 ]

0 голосов
/ 23 августа 2018

Чтобы разделить Travis на несколько заданий, вы можете использовать этапы или добавить опцию env

Это будет запускать каждый скрипт последовательно:

script: 
  - yarn lint
  - yarn flow
  - yarn test --runInBand
  - yarn build
  - yarn cypress

Чтобы заставить их работать в параллельных заданиях. Вы можете обновить его до приведенного ниже кода (хотя имейте в виду, что это ограничено числом одновременных доступных заданий. https://travis -ci.com /plan )

Использование Этапы сборки

language: node_js
node_js:
  - '9'

install:
  - travis_retry yarn install 

jobs:
  include:
    - stage: test
      name: "Flow/Lint/Test"
      script:
        - yarn lint
        - yarn flow
        - yarn test
    -
      name: "Cypress"
      script:
        - yarn cypress

Использование env

env:
  - TEST_SUITE="yarn lint"
  - TEST_SUITE="yarn flow"
  - TEST_SUITE="yarn test --runInBand"
  - TEST_SUITE="yarn build"
  - TEST_SUITE="yarn cypress"

script: $TEST_SUITE

Другим вариантом было бы просто иметь две параллельные сборки.

env:
  - TEST_SUITE="yarn lint && yarn flow && yarn test --runInBand && yarn build"
  - TEST_SUITE="yarn cypress"

script: $TEST_SUITE

Это может или не может улучшить общее время сборки. Для меня большая часть моего времени сборки была на кипарисе, в то время как тест lint + flow + занял несколько минут. Поэтому, отделяя кипарис для своей работы, я ускорил общее время сборки на несколько минут.

0 голосов
/ 01 мая 2018

В документах Travis есть несколько предложений, которые можно использовать, т. Е. Разбить сборку на несколько заданий: https://docs.travis -ci.com / user / speeding-up-the-build /

Другая вещь, которую вы могли бы сделать, это использовать GNU параллельно:

addons:
    apt_packages:
        - parallel

script:
    parallel --gnu --keep-order ::: 'yarn lint' 'yarn flow' 'yarn test --runInBand'

Параллельная команда GNU имеет множество опций, которые вы можете настроить под свои нужды. Подробнее об инструменте на их сайте https://www.gnu.org/software/parallel/

...