34 lines
1.0 KiB
YAML
34 lines
1.0 KiB
YAML
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"
|