Skip to content

Latest commit

 

History

History
94 lines (70 loc) · 3.17 KB

gitlab-ci.md

File metadata and controls

94 lines (70 loc) · 3.17 KB

Using semantic-release with GitLab CI

Environment variables

The Authentication environment variables can be configured with Protected variables.

Note: Make sure to configure your release branch as protected in order for the CI/CD build to access the protected variables.

Node project configuration

GitLab CI supports Pipelines allowing to test on multiple Node versions and publishing a release only when all test pass.

Note: The publish pipeline must run a Node >= 10.18 version.

.gitlab-ci.yml configuration for Node projects

This example is a minimal configuration for semantic-release with a build running Node 10 and 12. See GitLab CI - Configuration of your jobs with .gitlab-ci.yml for additional configuration options.

Note: Thesemantic-release execution command varies depending if you are using a local or global semantic-release installation.

# The release pipeline will run only if all jobs in the test pipeline are successful
stages:
    - test
    - release

before_script:
  - npm install

node:10:
  image: node:10
  stage: test
  script:
    - npm test

node:12:
  image: node:12
  stage: test
  script:
    - npm test

publish:
  image: node:12
  stage: release
  script:
    - npx semantic-release

.gitlab-ci.yml configuration for all projects

This example is a minimal configuration for semantic-release with a build running Node 10 and 12. See GitLab CI - Configuration of your jobs with .gitlab-ci.yml for additional configuration options.

Note: Thesemantic-release execution command varies depending if you are using a local or global semantic-release installation.

# The release pipeline will run only on the master branch a commit is triggered 
stages:
  - release

release:
  image: node:10-buster-slim
  stage: release
  before_script:
    - apt-get update && apt-get install -y --no-install-recommends git-core ca-certificates
    - npm install -g semantic-release @semantic-release/gitlab
  script:
    - semantic-release
  only:
    - master

release:
  image: node:12-buster-slim
  stage: release
  before_script:
    - apt-get update && apt-get install -y --no-install-recommends git-core ca-certificates
    - npm install -g semantic-release @semantic-release/gitlab
  script:
    - semantic-release
  only:
    - master

package.json configuration

A package.json is required only for local semantic-release installation.

{
  "devDependencies": {
    "semantic-release": "^15.0.0"
  }
}