auto release

This commit is contained in:
SNEK WAIFU
2026-05-14 04:42:44 +07:00
parent b1d6add110
commit a091e89e8a

56
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,56 @@
name: Release
on:
push:
branches: [master]
permissions:
contents: write
pull-requests: read
concurrency:
group: release-${{ github.ref }}
cancel-in-progress: true
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
with:
persist-credentials: false
fetch-depth: 0
- name: Set release metadata
id: meta
shell: bash
run: |
VERSION="$(jq -r .version package.json)"
TAG="v${VERSION}"
echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
echo "tag=${TAG}" >> "$GITHUB_OUTPUT"
- name: Check if tag already exists
id: tag_check
shell: bash
run: |
if git ls-remote --tags origin "refs/tags/${{ steps.meta.outputs.tag }}" | grep -q "${{ steps.meta.outputs.tag }}"; then
echo "exists=true" >> "$GITHUB_OUTPUT"
else
echo "exists=false" >> "$GITHUB_OUTPUT"
fi
- name: Create GitHub release
if: steps.tag_check.outputs.exists == 'false'
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.meta.outputs.tag }}
name: ${{ steps.meta.outputs.tag }}
target_commitish: master
generate_release_notes: true
- name: Skip release when tag exists
if: steps.tag_check.outputs.exists == 'true'
run: echo "Tag ${{ steps.meta.outputs.tag }} already exists. Skipping release creation."