name: Release
on:
release:
types: [created]
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
update-release:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get tag name and check prerelease
id: tag
run: |
if [ -n "${{ github.event.release.tag_name }}" ]; then
TAG="${{ github.event.release.tag_name }}"
else
TAG="${{ github.ref_name }}"
fi
echo "tag=$TAG" >> $GITHUB_OUTPUT
# Extract version number (remove 'v' prefix if present)
VERSION="${TAG#v}"
# Extract major version (first number before the dot)
MAJOR=$(echo "$VERSION" | cut -d. -f1)
# Prerelease if major version < 1
if [ "$MAJOR" -lt 1 ] 2>/dev/null; then
echo "prerelease=true" >> $GITHUB_OUTPUT
else
echo "prerelease=false" >> $GITHUB_OUTPUT
fi
- name: Update Release Metadata
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.tag.outputs.tag }}
name: Release ${{ steps.tag.outputs.tag }}
draft: false
prerelease: ${{ steps.tag.outputs.prerelease == 'true' }}
generate_release_notes: false
token: ${{ secrets.GITHUB_TOKEN }}