Skip to content
This repository has been archived by the owner on Jan 14, 2018. It is now read-only.

🚫 semantic-release plugin to check Travis CI environment before publishing.

License

Notifications You must be signed in to change notification settings

semantic-release/condition-travis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@semantic-release/condition-travis

semantic-release plugin to check Travis CI environment before publishing.

Travis Codecov Greenkeeper badge

Verify that semantic-release is running:

  • on Travis CI
  • on the right git branch and not on a PR build
  • only after all other Travis jobs are successful (using travis-deploy-once)

Options

Option Description Default
githubToken Required. The Github token used to authenticate with Travis API. process.env.GH_TOKEN or process.env.GITHUB_TOKEN
githubUrl The GitHub Enterprise endpoint. process.env.GH_URL or process.env.GITHUB_URL
githubApiPathPrefix The GitHub Enterprise API prefix. process.env.GH_PREFIX or process.env.GITHUB_PREFIX
travisUrl The Travis Enterprise endpoint. process.env.TRAVIS_URL

Configuration

The plugin is used by default by semantic-release so no specific configuration is required if githubToken, githubUrl, githubApiPathPrefix and travisUrl are set via environment variable.

Travis configuration

semantic-release require Node node version >= 8, so at least one Travis job as to run on Node 8 (or greater).

With one job

No specific configuration is required. semantic-release will run on the only Travis job.

language: node_js
node_js:
  - 8

after_success:
  - npm run semantic-release

With multiple jobs on different Node versions and OS

If there are multiple Node versions and OSs configured, travis-deploy-once will guarantee that semantic-release is executed on the highest Node version, after all other jobs are successful, without any additional configurations.

language: node_js
node_js:
  - 8
  - 6
  - 4
os:
  - linux
  - osx

after_success:
  - npm run semantic-release

In this example Travis will run 6 jobs (Node 8/Linux, Node 8/ OSX, Node 6/Linux etc...) and semantic-release will be executed on Node 8 on Linux, only after the 5 other jobs are successful.

Using Travis Build stages

Travis support Build Stages for more complex workflows. It's possible to use semantic-release with Build Stages by configuring the environment variable BUILD_LEADER_ID to defined which job will run semantic-release.

The build stage configuration has to guarantee that the job configured with BUILD_LEADER_ID will run only after all other jobs are successful.

language: node_js
node_js:
  - 8
  - 6
  - 4
os:
  - linux
  - osx
env:
  - BUILD_LEADER_ID=7
jobs:
  include:
    - stage: release
      node_js: 8
      os: linux
      after_success: 
        - npm run semantic-release

In this example Travis will run 6 jobs in the default stage (Node 4, 6 and 8 on Linux and OSX) and if those 6 jobs are successful the release stage will run the 7th job (on Node 8 / Linux) that will execute semantic-release. The environment variable BUILD_LEADER_ID is set to 7 as semantic-release should run on the 7th job.