Этап развертывания Travis не выполняется с условием, если: branch = master И тег присутствует И тип = push - PullRequest
0 голосов
/ 28 февраля 2019

Файл My Travis содержит два этапа:

  • test, который запускает сборку / тестирование для нескольких версий Node.js (и работает)
  • deploy, что должнозапустите build и разверните код в npm, когда будет выполнено следующее условие: branch = master AND tag IS present AND type = push

Я отправил коммит с тэгом на мастер (так что все три условия должны быть выполнены), но после успешного завершения этапа test этап deploy не запускается .

Вот другие (потенциально важные) части моего .travis.yml файла :

language: node_js

node_js:
  - '8'
  - '9'
  - '10'
  #- '11' # Runs the coverage report (added below)

before_script: npm run build
script:
  - npm run lint
  - npm run coverage

jobs:
  include:
    - stage: test
      node_js: '11'
      after_success: 'cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js'
    - stage: deploy
      node_js: '11'
      script: skip
      deploy:
        provider: npm
        # ...

stages:
  - test
  - name: deploy
    if: branch = master AND tag IS present AND type = push

1 Ответ

0 голосов
/ 28 февраля 2019

Я узнал это сам после добавления этих строк в мой файл travis:

echo "$TRAVIS_EVENT_TYPE" # result: push
echo "$TRAVIS_TAG"        # result: v0.14.0
echo "$TRAVIS_BRANCH"     # result: v0.14.0

Таким образом, ветвь устанавливается на имя тега, когда тег установлен.Я также обнаружил эту подсказку в документах для переменных среды :

Обратите внимание, что для тегов git не сохраняет ветку, из которой был отмечен коммит.

Странно, но вы все еще можете проверить наличие ветви в состоянии развертывания.Так что это сработало для меня:

  # ...
  deploy:
    provider: npm
    # ...
    on:
      tags: true
      branch: master

stages:
  - test
  - name: deploy
    if: type = push
...