fixed release workflow #6
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Create Release 🎉 | |
on: | |
push: | |
tags: | |
- 'v*' # Trigger on version tag pushes (e.g., v1.0, v2.0) | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
# Step 1: Checkout the repository | |
- name: 🛎️ Checkout code | |
uses: actions/checkout@v4 | |
# Step 2: Set up JDK (using Zulu) | |
- name: ☕ Set up Zulu JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' # Specify the JDK version | |
distribution: 'zulu' | |
# Step 3: Build the project and create shadowJar | |
- name: 🚧 Build with Gradle | |
run: ./gradlew shadowJar --no-daemon | |
# Step 4: Create a new release | |
- name: 📦 Create Release | |
id: create_release | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
const { promises: fs } = require('fs'); | |
// Get the latest tag | |
const tag = context.ref.replace('refs/tags/', ''); | |
// Read the release notes if available | |
const releaseNotes = await fs.readFile('CHANGELOG.md', 'utf-8').catch(() => 'No release notes.'); | |
// Create the release | |
const release = await github.rest.repos.createRelease({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
tag_name: tag, | |
name: tag, | |
body: releaseNotes, | |
draft: false, | |
prerelease: false, | |
}); | |
return release.data; | |
# Step 5: Upload the shadowJar artifact to the release | |
- name: 🎁 Upload shadowJar to Release | |
id: upload_jar | |
run: | | |
# Find the generated JAR file name | |
jar_file=$(ls build/libs/*.jar | grep -v '\-javadoc' | grep -v '\-sources' | head -n 1) | |
echo "Found JAR file: $jar_file" | |
echo "jar_file_name=$jar_file" >> $GITHUB_ENV | |
- name: 🎁 Upload shadowJar to Release | |
uses: Roang-zero1/github-upload-release-artifacts-action@v3 | |
with: | |
file: build/libs/*.jar | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |