Travis CI - условный сценарий before_deploy для каждого поставщика развертывания - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь развернуть с помощью Travis CI 2 разных провайдера (npm, firebase), мой файл .travis.yml выглядит примерно так:

branches:
  only:
    - master
    - /v\d+\.\d+\.\d+/

install:
  - yarn

before_deploy:
  # first provider
  - yarn build:storybook
  # second provider
  - yarn build:library
  - cp package.json lib/
  - cd lib

deploy:
  - provider: firebase
    ...
    on:
      branch: master
  - provider: npm
    ...
    on:
      tags: true
      all_branches: true

Теперь я хотел бы вызвать блок #first providerвнутри before_deploy только при развертывании на базе огня (мастер).

Есть ли какой-нибудь способ иметь условие внутри before_deploy?Или даже only: -branch-name внутри before_deploy?

1 Ответ

0 голосов
/ 20 июня 2019

Вы можете указать свое состояние как bash-скрипт:

before_deploy:
  # first provider
  - |
    if [[ $TRAVIS_BRANCH != $TRAVIS_PULL_REQUEST_BRANCH && $TRAVIS_BRANCH = 'master ]]; then
      yarn build:storybook
    fi
  # second provider
  - yarn build:library
  - cp package.json lib/
  - cd lib

Это предотвращает запуск скрипта yarn build:storybook, когда кто-то отправляет новый запрос на выборку мастеру; но работает только тогда, когда главная ветвь построена travis из-за толчка (или чего-то еще, что запускает сборку).

Смотрите здесь для дополнительных переменных: https://docs.travis -ci.com / пользователь / переменные окружения / # по умолчанию-переменные окружения

...