travis部署阶段不在条件下运行,如果存在:branch = master和标签,type = push



我的travis文件包含两个阶段:

  • test,它运行为多个node.js版本(and Works)
  • 运行/测试
  • deploy,应在满足以下条件时运行构建并将代码部署到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

我在将这些行添加到我的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

最新更新