From 550e227698a1b1e36b55930c62993ce7dd658bcd Mon Sep 17 00:00:00 2001 From: Nico Jensch Date: Sun, 19 Nov 2023 14:34:23 +0100 Subject: [PATCH] ci: automate releases via pushing tags --- .cz.yaml | 6 ++++++ .gitlab-ci.yml | 26 +++++++++++++++++++++----- 2 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 .cz.yaml diff --git a/.cz.yaml b/.cz.yaml new file mode 100644 index 0000000..2100588 --- /dev/null +++ b/.cz.yaml @@ -0,0 +1,6 @@ +--- +commitizen: + name: cz_conventional_commits + tag_format: $version + version_provider: scm + version_scheme: semver diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7fdc297..0fb8122 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,12 +1,12 @@ --- -stages: [check-pr] +stages: [checks, release] -check-pr: +check-commitizen: # Check the current commit message for compliance with commitizen - stage: check-pr + stage: checks image: alpine:latest - inherit: - variables: false + variables: + GIT_STRATEGY: none script: - apk add --no-cache --upgrade py3-pip - pip install -U commitizen @@ -15,3 +15,19 @@ check-pr: rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + +tag-to-release: + stage: release + # https://gitlab.com/gitlab-org/release-cli/-/blob/master/Dockerfile + image: registry.gitlab.com/gitlab-org/release-cli:latest + variables: + GIT_STRATEGY: none + script: + - apk add --no-cache --upgrade git py3-pip + - pip install -U commitizen + - git clone "$CI_PROJECT_URL.git" + - cd "$CI_PROJECT_NAME" + - CHANGELOG=$(cz changelog "$CI_COMMIT_TAG" --dry-run | sed /^Invalid/d) + - release-cli create --name "$CI_COMMIT_TAG" --description "$CHANGELOG" --tag-name "$CI_COMMIT_TAG" + rules: + - if: $CI_COMMIT_TAG != null