Skip to content

Overview

This Gitlab CI Component is designed to use Semantic Release to facilitate releases.

Currently this component only supports releasing to Gitlab endpoints such as the attached Docker/NPM/Helm Registry, etc.

Supported Semantic Release Plugins

  • @semantic-release/exec
  • @semantic-release/git
  • @semantic-release/gitlab
  • @semantic-release/helm3
  • @semantic-release/docker
  • @semantic-release/npm

Specification

spec:
  inputs:
    rule:
      default: $CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE != "merge_request_event" # Optional, defaults to main branch push events
    stage:
      default: "release" # Optional, defaults to "release"  
    needs:
      default: "[ \"build\" ]" # Optional, defaults to "[ "build" ]"
    semantic-release-command:
      default: "npx semantic-release" # Optional, defaults to "npx semantic-release"  
    build_command:
      default: "npm run build" # Optional, defaults to "npm run build"
    project_url:
      default: "$CI_PROJECT_URL.git"  # Optional, defaults to the project url
    npm_namespace:
      default: "futurehax"  # Optional, defaults to "futurehax"      
    gitlab_user: # Required
    gitlab_token: # Required
    component_release: # Optional, defaults to false
      default: false    

Usage

A bare minimum usage requires the following

include:
  - component: gitlab.futurehax.com/ci-components/semantic-release@~latest
    inputs:
      gitlab_token: ${GITLAB_TOKEN}
      gitlab_user: ${GIT_CI_USER}  
      project_url: ${CI_PROJECT_URL}

See .gitlab-ci.yml for a full example.


Last update: 2023-11-14