Skip to content

Latest commit

 

History

History
49 lines (30 loc) · 4.91 KB

ci-configuration.md

File metadata and controls

49 lines (30 loc) · 4.91 KB

CI configuration

Run semantic-release only after all tests succeeded

The semantic-release command must be executed only after all the tests in the CI build pass. If the build runs multiple jobs (for example to test on multiple Operating Systems or Node versions) the CI has to be configured to guarantee that the semantic-release command is executed only after all jobs are successful. This can be achieved with Travis Build Stages, CircleCI Workflows, Codeship Deployment Pipelines, GitLab Pipelines, Wercker Workflows, GoCD Pipelines or specific tools like travis-deploy-once.

See CI configuration recipes for more details.

Authentication

semantic-release requires push access to the project Git repository in order to create Git tags. The Git authentication can be set with one of the following environment variables:

Variable Description
GH_TOKEN or GITHUB_TOKEN A GitHub personal access token.
GL_TOKEN or GITLAB_TOKEN A GitLab personal access token.
GIT_CREDENTIALS URL encoded basic HTTP Authentication credentials).

GIT_CREDENTIALS can be the Git username and password in the format <username>:<password> or a token for certain Git providers like Bitbucket.

Alternatively the Git authentication can be set up via SSH keys.

Most semantic-release plugins require to set up authentication in order to publish to a package manager registry. The default npm and github plugins require the following environment variables:

Variable Description
NPM_TOKEN npm token created via npm token create.
Note: Only the auth-only level of npm two-factor authentication is supported.
GH_TOKEN GitHub authentication token.
Note: Only the personal token authentication is supported.

See each plugin documentation for the environment variables to set up.

The authentication token/credentials have to be made available in the CI service via environment variables.

See CI configuration recipes for more details on how to configure environment variables in your CI service.

Automatic setup with semantic-release-cli

semantic-release-cli allow to easily install semantic-release in your Node project and set up the CI configuration:

npm install -g semantic-release-cli

cd your-module
semantic-release-cli setup

dialogue

See the semantic-release-cli documentation for more details.