feat: support tag-based releases

- Trigger on both push to main and v* tags
- Use tag name for version when pushing tags (e.g., v2.0.0)
- Auto-generate version for branch pushes
- Tag releases are stable, branch releases are prerelease
This commit is contained in:
kilyabin
2026-03-10 01:15:59 +04:00
parent b5022bf565
commit b5d9f254c7

View File

@@ -3,6 +3,8 @@ name: Build & Release
on: on:
push: push:
branches: ["main"] branches: ["main"]
tags:
- "v*"
permissions: permissions:
contents: write contents: write
@@ -60,7 +62,11 @@ jobs:
- name: Generate version from commit - name: Generate version from commit
id: version id: version
run: | run: |
VERSION="v$(date +%Y.%m.%d)-$(git rev-parse --short HEAD)" if [[ $GITHUB_REF == refs/tags/v* ]]; then
VERSION="${GITHUB_REF#refs/tags/}"
else
VERSION="v$(date +%Y.%m.%d)-$(git rev-parse --short HEAD)"
fi
echo "version=$VERSION" >> $GITHUB_OUTPUT echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Generated version: $VERSION" echo "Generated version: $VERSION"
@@ -96,4 +102,4 @@ jobs:
files: artifacts/* files: artifacts/*
generate_release_notes: true generate_release_notes: true
draft: false draft: false
prerelease: true prerelease: ${{ startsWith(github.ref, 'refs/tags/') && false || true }}