|
| 1 | +#!/usr/bin/env bash |
| 2 | +# |
| 3 | + |
| 4 | +set -euo pipefail |
| 5 | + |
| 6 | +CI_SCRIPTS_DIR=$(dirname "$0")/.. |
| 7 | + |
| 8 | +# shellcheck source=.gitlab-ci/scripts/lib/git-helpers.sh |
| 9 | +source "$CI_SCRIPTS_DIR"/lib/git-helpers.sh |
| 10 | + |
| 11 | +PASSBOLT_HELP_DIR="passbolt_help" |
| 12 | +GITLAB_USER_EMAIL= "[email protected]" |
| 13 | +GIT_CI_TOKEN_NAME=${GIT_CI_TOKEN_NAME:-gitlab-ci-token} |
| 14 | +ACCESS_TOKEN_NAME="help-site-bot" |
| 15 | +HELP_SITE_REPO="gitlab.com/passbolt/passbolt-help.git" |
| 16 | +RELEASE_NOTES_PATH="../RELEASE_NOTES.md" |
| 17 | + |
| 18 | + |
| 19 | +function create_release_notes() { |
| 20 | + title="$(grep name ../config/version.php | awk -F "'" '{print $4}')" |
| 21 | + slug="$(grep name ../config/version.php | awk -F "'" '{print $4}' | tr ' ' '_' | tr '[:upper:]' '[:lower:]')" |
| 22 | + categories="releases $PASSBOLT_FLAVOUR" |
| 23 | + song="$(grep 'Release song:' $RELEASE_NOTES_PATH | awk '{print $3}')" |
| 24 | + quote="$(grep name ../config/version.php | awk -F "'" '{print $4}')" |
| 25 | + permalink="/releases/$PASSBOLT_FLAVOUR/$(grep name ../config/version.php | awk -F "'" '{print $4}' | tr ' ' '_' | tr '[:upper:]' '[:lower:]')" |
| 26 | + date="$(date +'%Y-%m-%d')" |
| 27 | + |
| 28 | + cat << EOF >> _releases/"$PASSBOLT_FLAVOUR"/"$CI_COMMIT_TAG".md |
| 29 | +--- |
| 30 | +title: $title |
| 31 | +slug: $slug |
| 32 | +layout: release |
| 33 | +categories: $categories |
| 34 | +version: $CI_COMMIT_TAG |
| 35 | +product: $PASSBOLT_FLAVOUR |
| 36 | +song: $song |
| 37 | +quote: $quote |
| 38 | +permalink: $permalink |
| 39 | +date: $date |
| 40 | +--- |
| 41 | +EOF |
| 42 | + |
| 43 | + cat $RELEASE_NOTES_PATH >> _releases/"$PASSBOLT_FLAVOUR"/"$CI_COMMIT_TAG".md |
| 44 | +} |
| 45 | + |
| 46 | +setup_gpg_key "$GPG_KEY_PATH" "$GPG_PASSPHRASE" "$GPG_KEY_GRIP" |
| 47 | +setup_git_user "$GITLAB_USER_EMAIL" "$ACCESS_TOKEN_NAME" |
| 48 | + |
| 49 | +git clone -b master https://"$HELPSITE_TOKEN_NAME":"$HELPSITE_TOKEN"@"$HELP_SITE_REPO" "$PASSBOLT_HELP_DIR" |
| 50 | + |
| 51 | +cd "$PASSBOLT_HELP_DIR" |
| 52 | + |
| 53 | +create_release_notes |
| 54 | +git checkout -b release_notes_"$CI_COMMIT_TAG" |
| 55 | +git add _releases/"$PASSBOLT_FLAVOUR"/"$CI_COMMIT_TAG".md |
| 56 | +git commit -m ":robot: Automatically added release notes for version $CI_COMMIT_TAG $PASSBOLT_FLAVOUR" |
| 57 | +glab auth login --token "$HELPSITE_TOKEN" |
| 58 | +mr_url=$(glab mr create -s release_notes_"$CI_COMMIT_TAG" -b master -d ":robot: Release notes for $CI_COMMIT_TAG $PASSBOLT_FLAVOUR" -t "Release notes for $CI_COMMIT_TAG" --push --repo "passbolt/passbolt-help" | grep 'https://gitlab.com/passbolt/passbolt-help/-/merge_requests/') |
| 59 | +cd - |
| 60 | +bash .gitlab-ci/scripts/bin/slack-status-messages.sh ":notebook: New helpsite release notes created for $CI_COMMIT_TAG $PASSBOLT_FLAVOUR" "$mr_url" |
0 commit comments