如何使用 travis 构建阶段有条件地排除阶段/作业(测试版功能)

Mrc*_*ief 5 travis-ci

试图让 travis 跳过 PR/非主分支构建的发布阶段,但我似乎无法得到正确的配方。

travis 配置列于此处

language: node_js
cache:
  directories:
    - node_modules
node_js:
  - '8'
  - '6'
before_install:
  - npm install -g npm@5
  - npm install -g greenkeeper-lockfile@1
install:
  - yarn install --ignore-engines
before_script: greenkeeper-lockfile-update
after_script: greenkeeper-lockfile-upload
script:
  - yarn coveralls
branches:
  except:
    - /^v\d+\.\d+\.\d+$/
jobs:
  include:
    - if: branch = master
    - stage: release
      node_js: lts/*
      script: echo "Deploying to npm ..."
      deploy:
        provider: script
        skip_cleanup: true
        script:
          - npx semantic-release
Run Code Online (Sandbox Code Playgroud)

我也尝试过

jobs:
  include:
    - stage: release
      if: branch = master
      node_js: lts/*
      script: echo "Deploying to npm ..."
      deploy:
        provider: script
        skip_cleanup: true
        script:
          - npx semantic-release
Run Code Online (Sandbox Code Playgroud)

jobs:
  include:
    -
      if: branch = master 
    - stage: release
      node_js: lts/*
      script: echo "Deploying to npm ..."
      deploy:
        provider: script
        skip_cleanup: true
        script:
          - npx semantic-release
Run Code Online (Sandbox Code Playgroud)

但 travis 总是执行发布阶段 - 它不会运行npx semantic-release,但仍然会经历初始化、运行测试等。