Files
master/.github/workflows/release.yml
2026-02-15 19:34:23 +01:00

61 lines
1.6 KiB
YAML

name: Release
on:
push:
branches: [master]
# Prevent concurrent releases
concurrency:
group: release
cancel-in-progress: false
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # full history for tag checks
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Extract version from build.gradle.kts
id: version
run: |
VERSION=$(grep -oP 'version\s*=\s*"\K[^"]+' build.gradle.kts)
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
echo "Detected version: $VERSION"
- name: Check if tag already exists
id: tag_check
run: |
if git rev-parse "v${{ steps.version.outputs.version }}" >/dev/null 2>&1; then
echo "exists=true" >> "$GITHUB_OUTPUT"
echo "Tag v${{ steps.version.outputs.version }} already exists — skipping release."
else
echo "exists=false" >> "$GITHUB_OUTPUT"
fi
- name: Build
if: steps.tag_check.outputs.exists == 'false'
run: ./gradlew build
- name: Create tag and GitHub release
if: steps.tag_check.outputs.exists == 'false'
uses: softprops/action-gh-release@v2
with:
tag_name: v${{ steps.version.outputs.version }}
name: v${{ steps.version.outputs.version }}
generate_release_notes: true
files: build/libs/*.jar