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
Dec 11, 2017
Dec 14, 2017
Sep 18, 2017
Sep 18, 2017
Nov 25, 2017
Sep 18, 2017
Sep 18, 2017
Dec 11, 2017
Dec 15, 2017
Jan 11, 2018

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.