29 lines
841 B
YAML
29 lines
841 B
YAML
stages:
|
|
- release
|
|
|
|
create_release:
|
|
stage: release
|
|
image: registry.gitlab.com/gitlab-org/release-cli:latest
|
|
only:
|
|
- tags
|
|
rules:
|
|
- if: $CI_COMMIT_TAG =~ /^[0-9]+\.[0-9]+\.[0-9]+.*$/
|
|
script:
|
|
- |
|
|
# Get the previous tag to generate changelog
|
|
PREVIOUS_TAG=$(git describe --tags --abbrev=0 $CI_COMMIT_TAG^ 2>/dev/null || echo "")
|
|
|
|
# Generate changelog
|
|
if [ -n "$PREVIOUS_TAG" ]; then
|
|
CHANGELOG=$(git log --pretty=format:"* %s (%an)" $PREVIOUS_TAG..$CI_COMMIT_TAG)
|
|
else
|
|
CHANGELOG=$(git log --pretty=format:"* %s (%an)" $CI_COMMIT_TAG)
|
|
fi
|
|
|
|
# Save changelog to file for release
|
|
echo -e "## Changes\n$CHANGELOG" > changelog.md
|
|
release:
|
|
name: 'Release $CI_COMMIT_TAG'
|
|
tag_name: '$CI_COMMIT_TAG'
|
|
description: './changelog.md'
|
|
ref: '$CI_COMMIT_TAG'
|