Skip to main content

Pipeline auto-update component

This pipeline handles the management of auto-update of the ci-tools project.

The version input accepts a variable name or a literal release version. Its default is the variable name TOOLS_VERSION. Variable names contain letters, digits and underscores, and cannot start with a digit. The $VARIABLE and ${VARIABLE} reference forms are also accepted.

version inputVersion source
TOOLS_VERSION (default)Value of TOOLS_VERSION
IMPORT_VERSIONValue of the selected custom variable
4.189.0The literal version, independent of any variables
""Latest upstream release, independent of TOOLS_VERSION

If the selected variable is empty or unset, the preparation job discovers the latest published release from upstream xrow-public/ci-tools. It does not fall back to another variable. Variable references are resolved in the preparation job, not expanded while the component input is interpolated.

The version is resolved once and passed as a dotenv artifact to the image and Git mirror jobs, so the stable Git ref matches the imported image version even if upstream publishes another release during the pipeline. Discovery failures or invalid version tags fail preparation before any mirroring starts.

Variables​

NamerequiredtypeHints
GITLAB_TOKENnostringPersonal access token of a group service account
GIT_SSH_KEYnofileIs a SSH Key. Use when there is no token

Setup​

  • Create a new project auto-update
  • Set variables $CI_REGISTRY, $CI_REGISTRY_USER and $CI_REGISTRY_PASSWORD
  • Create GitLab pipeline file .gitlab-ci.yml:
include:
- component: $CI_SERVER_FQDN/xrow-public/ci-tools/common@<current-imported-version>
- component: $CI_SERVER_FQDN/xrow-public/ci-tools/pipeline-auto-update@<current-imported-version>
inputs:
repository: $CI_REGISTRY/components/ci-tools

variables:
# Optional: omit TOOLS_VERSION to import the latest upstream release.
# renovate: datasource=gitlab-releases depName=xrow-public/ci-tools
TOOLS_VERSION: <current-imported-version>
  • Onboard renovate to the project and run renovate on it.
  • Check the results of dependency dashboard. While the current imported pipeline has a older version a newer version is available online.

dependency dashboard.

Inputs​

NameDescriptionDefaultType
------------
destinationgit@$CI_SERVER_FQDN:xrow-public/ci-tools.gitstring
needsThe jobs that this job depends on.[]array
repository$CI_REGISTRY/${CI_PROJECT_NAMESPACE}string
versionVariable name or literal version to mirror. Empty values discover the latest release.TOOLS_VERSIONstring