release.mk

show-version

Synopsis: make show-version

Hooks: none

Variables:

Variable

Description

RELEASE_CONTEXT

<directory holding .release file>

show current calculated $VERSION. RELEASE_CONTEXT defaults to the root folder of the project, but can be overriden if .release files are required per image to build. See ska-tango-images for an example.

bump-patch-release

Synopsis: make bump-patch-release

Hooks: none

Variables:

Variable

Description

RELEASE_CONTEXT

<directory holding .release file>

Increment the current semver patch level using the current calculated $VERSION. RELEASE_CONTEXT defaults to the root folder of the project, but can be overriden if .release files are required per image to build. See ska-tango-images for an example. NOTE all bump-*-release targets call set-release which has pre and post hooks

bump-minor-release

Synopsis: make bump-minor-release

Hooks: none

Variables:

Variable

Description

RELEASE_CONTEXT

<directory holding .release file>

Increment the current semver minor level, and reset patch level to 0 using the current calculated $VERSION. RELEASE_CONTEXT defaults to the root folder of the project, but can be overriden if .release files are required per image to build. See ska-tango-images for an example. NOTE all bump-*-release targets call set-release which has pre and post hooks

bump-major-release

Synopsis: make bump-major-release

Hooks: none

Variables:

Variable

Description

RELEASE_CONTEXT

<directory holding .release file>

Increment the current semver major level, and reset minor and patch levels to 0 using the current calculated $VERSION. RELEASE_CONTEXT defaults to the root folder of the project, but can be overriden if .release files are required per image to build. See ska-tango-images for an example. NOTE all bump-*-release targets call set-release which has pre and post hooks

bump-rc

Synopsis: make bump-rc

Hooks: none

Variables:

Variable

Description

RELEASE_CONTEXT

<directory holding .release file>

Increment the current semver release candidate level using the current calculated $VERSION. RELEASE_CONTEXT defaults to the root folder of the project, but can be overriden if .release files are required per image to build. See ska-tango-images for an example. NOTE the bump-rc target calls set-release which has pre and post hooks

rc-to-release

Synopsis: make rc-to-release

Hooks: none

Variables:

Variable

Description

RELEASE_CONTEXT

<directory holding .release file>

Transform the current semver release candidate level version (X.Y.Z-rcN) to a semver release version (X.Y.Z) using the current calculated $VERSION. RELEASE_CONTEXT defaults to the root folder of the project, but can be overriden if .release files are required per image to build. See ska-tango-images for an example. NOTE the rc-to-release target calls set-release which has pre and post hooks

python-set-release

Synopsis: make python-set-release

Hooks: python-pre-set-release, python-post-set-release

Set the Python package version in pyproject.toml based on the current calculated $VERSION.

docs-set-release

Synopsis: make docs-set-release

Hooks: docs-pre-set-release, docs-post-set-release

Set the Documentation version in conf.py based on the current calculated $VERSION.

helm-update-deps

Synopsis: make helm-update-deps

Hooks: helm-pre-update-deps, helm-post-update-deps

Set the versions of Helm Chart dependences ./charts/**/Chart.yaml based on the current calculated $VERSION.

helm-set-release

Synopsis: make helm-set-release

Hooks: helm-pre-set-release, helm-post-set-release

Set the Helm Chart versions and appVersion in ./charts/**/Chart.yaml based on the current calculated $VERSION.

js-set-release

Synopsis: make js-set-release

Hooks: js-pre-set-release, js-post-set-release

Set the JS package version in package.json based on the current calculated $VERSION.

conan-set-release

Synopsis: make conan-set-release

Hooks: conan-pre-set-release, conan-post-set-release

Set the Conan package version in conanfile.py based on the current calculated $VERSION.

check-release

Synopsis: make check-release

Hooks: none

Variables:

Variable

Description

RELEASE_CONTEXT

<directory holding .release file>

Check if there is a git tag for the current calculated $VERSION.

create-git-tag

Synopsis: make create-git-tag

Hooks: none

Variables:

Variable

Description

RELEASE_CONTEXT

<directory holding .release file>

AUTO_RELEASE

<true or false>. Used to skip interactive prompts. Default false.

Create a git tag for the current calculated $VERSION. Setting AUTO_RELEASE to true will automatically commit the messages without JIRA ID and prompts.

git-push-tag

Synopsis: make git-push-tag

Hooks: none

Push outstanding changes to git including tags.

set-release

Synopsis: make set-release TAG=<semver string>

Hooks: pre-set-release, post-set-release

Variables:

Variable

Description

TAG

<semantic version string> - default is calculated VERSION based on .release

Utility target for updating .release file - not normally used directly.

check-status

Synopsis: make check-status

Hooks: none

Check for outstanding changes in the current git repository. This excludes changes to version update files such as .release, Chart.yaml, and pyproject.tonl

generate-changelog

Synopsis: generate-changelog

Hooks: none

Variables:

Variable

Description

OCI_IMAGES_TO_PUBLISH

<default: OCI_IMAGES> - list of oci images to publish

HELM_CHARTS_TO_PUBLISH

<default: HELM_CHARTS> - list of helm charts to publish

RAW_PKGS_TO_PUBLISH

<default: RAW_PKGS> - list of raw packages to publish

JIRA_USERNAME

<default in pipelines: marvin username> - used for Changelog generation

JIRA_PASSWORD

<default in pipelines: marvin password> - used for Changelog generation

JIRA_URL

<default in pipelines: https://jira.skatelescope.org> - used for Changelog generation

CHANGELOG_FILE

<default : CHANGELOG.md> - name of the changelog file

CHANGELOG_CONFIG

<default: .chglog/config.yml> - location of the chglog config file

CHANGELOG_TEMPLATE

<default : .chglog/CHANGELOG.tpl.md> - location of the chglog template file

Appends to the CHANGELOG_FILE the changes from the tag before CI_COMMIT_TAG until CI_COMMIT_TAG With that file creates a release on gitlab under CI_COMMIT_TAG with the artefacts appended as assets to the release