blob: 5db21a25f6c23ba0097415babea6c3c9389ae945 [file]
name: Release
on:
push:
tags:
- 'v*'
permissions:
contents: write
concurrency:
group: release-${{ github.ref }}
cancel-in-progress: false
jobs:
release:
name: Create release
runs-on: ubuntu-latest
steps:
- name: Create release with generated notes
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set -euo pipefail
if output=$(gh release view "$GITHUB_REF_NAME" --repo "$GITHUB_REPOSITORY" 2>&1); then
echo "Release $GITHUB_REF_NAME already exists, skipping"
exit 0
elif ! grep -qi "release not found" <<< "$output"; then
# A lookup failure other than "not found" (auth, network, API)
# must not fall through to the create step.
echo "$output" >&2
exit 1
fi
gh release create "$GITHUB_REF_NAME" \
--repo "$GITHUB_REPOSITORY" \
--title "${GITHUB_REF_NAME#v}" \
--verify-tag \
--generate-notes