- Remove `@semantic-release/condition-travis` from the default plugins - Verify the current branch in the core - Verify the build is not triggered by a PR in the core - Run in dry-run mode if not triggered on CI - Dry-run mode runs the `verifyConditions` plugins, allowing to detect configuration error locally - Return without error when no version has to be released due to no changes - Return without error if the build is triggered from a PR - Return without error if the current branch is not the configured branch - CLI return with exit code 1 if there is a `semanticReleaseError`, allowing to fail builds in case of config error, missing token etc... BREAKING CHANGE: `semantic-release` doesn't make sure it runs only on one Travis job anymore. The CI configuration has to be done such that `semantic-release` - runs only once per build - runs only after all tests are successful on every jobs of the build - runs on Node >=8 This can easily be done with [travis-deploy-once](https://github.com/semantic-release/travis-deploy-once). Migration Guide Modify your `.travis.yml` to use `travis-deploy-once`. Replace: ```yaml after_success: - npm run semantic-release ``` by: Replace ```yaml after_success: - npm install -g travis-deploy-once@4 - travis-deploy-once "npm run semantic-release" ```
30 lines
624 B
YAML
30 lines
624 B
YAML
language: node_js
|
|
services:
|
|
- docker
|
|
notifications:
|
|
email: false
|
|
node_js:
|
|
- 9
|
|
- 8
|
|
os:
|
|
- linux
|
|
|
|
# Trigger a push build on caribou and greenkeeper branches + PRs build on every branches
|
|
# Avoid double build on PRs (See https://github.com/travis-ci/travis-ci/issues/1147)
|
|
branches:
|
|
only:
|
|
- caribou
|
|
- /^greenkeeper.*$/
|
|
|
|
# Retry install on fail to avoid failing a build on network/disk/external errors
|
|
install:
|
|
- travis_retry npm install
|
|
|
|
script:
|
|
- npm run test
|
|
|
|
after_success:
|
|
- npm run codecov
|
|
- npm install -g semantic-release/travis-deploy-once@4
|
|
- travis-deploy-once "npm run semantic-release"
|