when: - event: tag steps: - name: validate-release image: golang:1.25.5 commands: - | set -eu version="$CI_COMMIT_TAG" release_note="docs/releases/$version.md" if ! printf '%s\n' "$version" | grep -E -x 'v(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)' >/dev/null; then printf '%s\n' "invalid release tag: $version" >&2 exit 1 fi if [ ! -s "$release_note" ]; then printf '%s\n' "missing release note: $release_note" >&2 exit 1 fi if ! grep -F -x "# Notarius $version" "$release_note" >/dev/null; then printf '%s\n' "release note heading does not match $version" >&2 exit 1 fi for heading in '## Summary' '## Compatibility' '## Upgrade' '## Changes'; do if ! grep -F -x "$heading" "$release_note" >/dev/null; then printf '%s\n' "release note is missing heading: $heading" >&2 exit 1 fi done ./scripts/check-release-source.sh "$version"