From 202823fcff82b3c2986f76da0a73ab89abbdf397 Mon Sep 17 00:00:00 2001 From: Roberto Giovanardi <roberto.giovanardi@northern.tech> Date: Sat, 18 Jan 2025 11:56:27 +0100 Subject: [PATCH 1/2] ci: move to saas prerelease type To use saas tags for hosted Mender Ticket: None Changelog: None Signed-off-by: Roberto Giovanardi <roberto.giovanardi@northern.tech> --- release-please-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-please-config.json b/release-please-config.json index e28b9509..a22e5730 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -11,7 +11,7 @@ "release-type": "simple", "versioning": "prerelease", "prerelease": true, - "prerelease-type": "rc", + "prerelease-type": "saas", "include-component-in-tag": false, "include-v-in-tag": true, "signoff": "mender-test-bot <mender@northern.tech>", From d19e40d1a6f7c5afd6289efa34c4bca4fb67336c Mon Sep 17 00:00:00 2001 From: Roberto Giovanardi <roberto.giovanardi@northern.tech> Date: Sat, 18 Jan 2025 11:56:58 +0100 Subject: [PATCH 2/2] ci: use different changelog files to avoid conflicts Signed-off-by: Roberto Giovanardi <roberto.giovanardi@northern.tech> --- .gitlab-ci.yml | 56 ++++++++++++++++++++++++++++------- .gitlab/generate_changelog.sh | 17 +++++++++++ 2 files changed, 62 insertions(+), 11 deletions(-) create mode 100755 .gitlab/generate_changelog.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cc384741..b5774d7f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -582,6 +582,10 @@ changelog: # GITHUB_TOKEN for Github cli authentication - export GITHUB_TOKEN=${GITHUB_CLI_TOKEN} - cp CHANGELOG.md CHANGELOG.md.${CI_COMMIT_REF_NAME} # Saving the changelog for later + - cp CHANGELOG.md CHANGELOG.md.${CI_COMMIT_REF_NAME} || true # Saving the changelog for later + - cp CHANGELOG-saas.md CHANGELOG-saas.md.${CI_COMMIT_REF_NAME} || true # Saving the changelog for later + - cp CHANGELOG-enterprise.md CHANGELOG-enterprise.md.${CI_COMMIT_REF_NAME} || true # Saving the changelog for later + - export CHANGELOG_SUFFIX="" script: - release-please release-pr --token=${GITHUB_BOT_TOKEN_REPO_FULL} @@ -595,14 +599,23 @@ changelog: - test -z "$RELEASE_PLEASE_PR" && echo "No release-please PR found" && exit 0 - gh pr checkout --force $RELEASE_PLEASE_PR - wget --output-document cliff.toml https://raw.githubusercontent.com/mendersoftware/mendertesting/master/utils/cliff.toml - - mv CHANGELOG.md.${CI_COMMIT_REF_NAME} CHANGELOG.md - - git cliff - --unreleased - --prepend CHANGELOG.md - --github-repo ${GITHUB_REPO_URL} - --use-branch-tags - --tag $(jq -r '.["."]' .release-please-manifest.json) - - git add CHANGELOG.md + - RELEASE_VERSION="$(jq -r '.["."]' .release-please-manifest.json)" + - | + case $RELEASE_VERSION in + *saas*) + if [[ "$CI_PROJECT_NAME" == "mender-server-enterprise" ]]; then + ./.gitlab/generate_changelog.sh "${RELEASE_VERSION}" "-saas" "${GITHUB_REPO_URL}" "${CI_COMMIT_REF_NAME}" + fi + ;; + *) + if [[ "$CI_PROJECT_NAME" == "mender-server-enterprise" ]]; then + ./.gitlab/generate_changelog.sh "${RELEASE_VERSION}" "-enterprise" "${GITHUB_REPO_URL}" "${CI_COMMIT_REF_NAME}" + ./.gitlab/generate_changelog.sh "${RELEASE_VERSION}" "-saas" "${GITHUB_REPO_URL}" "${CI_COMMIT_REF_NAME}" + else + ./.gitlab/generate_changelog.sh "${RELEASE_VERSION}" "" "${GITHUB_REPO_URL}" "${CI_COMMIT_REF_NAME}" + fi + ;; + esac - git commit --amend -s --no-edit - git push github-${CI_JOB_ID} --force # Update the PR body @@ -647,17 +660,38 @@ release:mender-docs-changelog: - git config --global user.name "${GITHUB_USER_NAME}" # GITHUB_TOKEN for Github cli authentication - export GITHUB_TOKEN=${GITHUB_CLI_TOKEN} + - if [[ "${CI_PROJECT_NAME}" == "mender-server-enterprise" ]]; then + export CHANGELOG_SUFFIX="-enterprise"; + else + export CHANGELOG_SUFFIX=""; + fi; script: - git clone https://${GITHUB_USER_NAME}:${GITHUB_BOT_TOKEN_REPO_FULL}@github.com/${GITHUB_CHANGELOG_REPO_URL} - cd ${GITHUB_CHANGELOG_REPO_URL#*/} - git checkout -b changelog-${CI_JOB_ID} - cat ../.docs_header.md > ${CHANGELOG_REMOTE_FILE} - - cat ../CHANGELOG.md | grep -v -E '^---' >> ${CHANGELOG_REMOTE_FILE} + - cat ../CHANGELOG${CHANGELOG_SUFFIX}.md | grep -v -E '^---' >> ${CHANGELOG_REMOTE_FILE} - git add ${CHANGELOG_REMOTE_FILE} - | - git commit -s -m "chore: add mender-server changelog" + git commit -s -m "chore: add $CI_PROJECT_NAME changelog" - git push origin changelog-${CI_JOB_ID} - - gh pr create --title "Update CHANGELOG.md" --body "Automated change to the CHANGELOG.md file" --base master --head changelog-${CI_JOB_ID} + - gh pr create --title "Update CHANGELOG${CHANGELOG_SUFFIX}.md for $CI_PROJECT_NAME" --body "Automated change to the CHANGELOG${CHANGELOG_SUFFIX}.md file" --base master --head changelog-${CI_JOB_ID} + +release:mender-docs-changelog:saas: + extends: release:mender-docs-changelog + variables: + CHANGELOG_REMOTE_FILE: "12.Hosted-Mender/docs.md" + rules: + - if: '$CI_PROJECT_NAME == "mender-server"' + when: never + - if: '$CI_COMMIT_TAG =~ /^v\d+\.\d+\.\d+(?:-saas\.*\d*)?/' + before_script: + # Setting up git + - git config --global user.email "${GITHUB_USER_EMAIL}" + - git config --global user.name "${GITHUB_USER_NAME}" + # GITHUB_TOKEN for Github cli authentication + - export GITHUB_TOKEN=${GITHUB_CLI_TOKEN} + - export CHANGELOG_SUFFIX="-saas" # # Helm version bump diff --git a/.gitlab/generate_changelog.sh b/.gitlab/generate_changelog.sh new file mode 100755 index 00000000..b0db954c --- /dev/null +++ b/.gitlab/generate_changelog.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e + +RELEASE_VERSION=$1 +CHANGELOG_SUFFIX=$2 +GITHUB_REPO_URL=$3 +CI_COMMIT_REF_NAME=$4 + +Generating changelog file CHANGELOG${CHANGELOG_SUFFIX:-}.md for release ${RELEASE_VERSION} +mv CHANGELOG${CHANGELOG_SUFFIX}.md.${CI_COMMIT_REF_NAME} CHANGELOG${CHANGELOG_SUFFIX}.md +if [ "${CHANGELOG_SUFFIX}" == "-saas" ]; then + git cliff --unreleased --prepend CHANGELOG${CHANGELOG_SUFFIX}.md --github-repo ${GITHUB_REPO_URL} --use-branch-tags --tag ${RELEASE_VERSION} +else + git cliff --unreleased --prepend CHANGELOG${CHANGELOG_SUFFIX}.md --github-repo ${GITHUB_REPO_URL} --use-branch-tags --tag ${RELEASE_VERSION} --ignore-tags saas +fi +git add CHANGELOG${CHANGELOG_SUFFIX}.md