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