Skip to content

Get and normalize continuous integration service environment variables.

License

Notifications You must be signed in to change notification settings

Siilwyn/get-ci-env

Repository files navigation

get-ci-env

Travis Build Status LGTM Grade npm

Get and normalize the environment variables from continuous integration services. This package is similar to pvdlg's env-ci but goes for a simpler approach. This results in a more restricted and lightweight (zero dependencies) package:

  • Only CI services that contain all expected values in the environment are supported, taking away the need to manually check the returned data.
  • Return a promise to indicate if a valid CI environment is detected for explicit error handling.
  • Logically nested data for concise naming and easy detection of pull request context: if (ciEnvOutput.pr) { ... }.

Install

npm install get-ci-env

Usage

Example usage when running inside Buildkite:

import getCiEnv from 'get-ci-env';

getCiEnv().then(console.log);

Resulting in the output:

{
  service: 'buildkite',
  branch: 'add-long-eared',
  commit: '1ef3f7c',
  repo: { owner: 'Selwyn', name: 'hedgehogs' },
  pr: { number: '3', branch: 'master' },
}

Supported services

Variables

  • service: Camel-cased CI service name
  • branch: Name of the the branch being built
  • commit: Commit SHA hash that triggered the CI build
  • repo:
    • owner: Name of the repository owner
    • name: Repository name
  • pr: Only set when triggered by a pull request
    • number: Pull request number
    • targetBranch: Name of the base branch that the pull request is targeting

API

getCiEnv(env)

env

Type: object
Default: process.env
The user environment.

About

Get and normalize continuous integration service environment variables.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Contributors 4

  •  
  •  
  •  
  •