Skip to main content

Pipeline components component

This pipeline handles the management of a components project. It will create unstable releases, stable releases and provide a stable branch bound to the latest stable version.

Each commit in main will trigger the workflow to create a new release via semantic-release. In the first tagged pipeline a new commit is created with pinned versions in the codebase and then tagged with that version merged to stable. Finally, that commit is reverted in main to unpin it from latest version.

Bugs

Variables

NamerequiredHints
GITLAB_TOKENnoNon-personal access token of a service account fallback to CI_JOB_TOKEN with limitations

Limitations of CI_JOB_TOKEN:

The current limitations of using CI_JOB_TOKEN are so severe that we recommend using GITLAB_TOKEN instead.

  • You can't trigger the wiki publishing.
  • Create pipeline not working, so you need to trigger the pipeline manually after pushing a commit to main or use a scheduled pipeline.
  • Cannot create comments on merge requests, so no release notes in merge requests.

Setup

  • Create a new components catalog project
  • Create stable branch from main
  • Protect main, stable and all tags *
  • Create GitLab pipeline file .gitlab-ci.yml:
include:
- component: $CI_SERVER_FQDN/xrow-public/ci-tools/common@stable
- component: $CI_SERVER_FQDN/xrow-public/ci-tools/pipeline-components@stable

Inputs

NameDescriptionDefaultType
------------
configuration-enabledWhether to run the configuration job. Set to false if the downstream pipeline already has the necessary configuration and secrets set up.trueboolean
documentation-pathPath to the documentation files./docsstring
nameThe name of the project to release${CI_PROJECT_NAME}string
needsThe jobs that this job depends on.[]array
release-branchThe branch to release fromstablestring
stageThe name of the stagereleasestring
tagsThe runners that this job depends on.[]array