41 lines
1.4 KiB
YAML
41 lines
1.4 KiB
YAML
name: version-changelog
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
version-changelog:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Check version bump and changelog entry
|
|
run: |
|
|
set -e
|
|
PR_VERSION=$(grep -m1 '"version"' composer.json | sed -E 's/.*"version"[[:space:]]*:[[:space:]]*"([^"]+)".*/\1/')
|
|
MAIN_VERSION=$(git show origin/main:composer.json | grep -m1 '"version"' | sed -E 's/.*"version"[[:space:]]*:[[:space:]]*"([^"]+)".*/\1/')
|
|
|
|
echo "main version: $MAIN_VERSION"
|
|
echo "PR version: $PR_VERSION"
|
|
|
|
if [ "$MAIN_VERSION" = "$PR_VERSION" ]; then
|
|
echo "::error::composer.json version ($PR_VERSION) was not bumped from main ($MAIN_VERSION)"
|
|
exit 1
|
|
fi
|
|
|
|
HIGHEST=$(printf '%s\n%s\n' "$MAIN_VERSION" "$PR_VERSION" | sort -V | tail -n1)
|
|
if [ "$HIGHEST" != "$PR_VERSION" ]; then
|
|
echo "::error::composer.json version ($PR_VERSION) is not greater than main's ($MAIN_VERSION)"
|
|
exit 1
|
|
fi
|
|
|
|
if ! grep -qF "## [$PR_VERSION]" CHANGELOG.md; then
|
|
echo "::error::CHANGELOG.md is missing a '## [$PR_VERSION]' heading"
|
|
exit 1
|
|
fi
|
|
|
|
echo "OK: version bumped to $PR_VERSION and documented in CHANGELOG.md"
|