From 65ec050e7a52133173a4616bf19600168ef0492e Mon Sep 17 00:00:00 2001 From: Myoungho Shin Date: Mon, 22 Jun 2026 22:15:28 -0700 Subject: [PATCH] release jar --- .github/workflows/release-jar.yml | 51 +++++++++++++++++++++++++++++++ build.gradle | 4 ++- 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/release-jar.yml diff --git a/.github/workflows/release-jar.yml b/.github/workflows/release-jar.yml new file mode 100644 index 0000000..840a9f3 --- /dev/null +++ b/.github/workflows/release-jar.yml @@ -0,0 +1,51 @@ +name: Release agent JAR + +# On a v* tag, build the shadow (fat) JAR and publish it as a downloadable +# GitHub Release asset named gpufl-agent.jar. Users grab it from the releases +# page or the stable URL: +# https://github.com/gpu-flight/gpufl-agent/releases/latest/download/gpufl-agent.jar +# and run it with `java -jar gpufl-agent.jar`. Runs alongside publish-image.yml, +# which ships the same JAR as a ghcr image for the monitor container. + +on: + push: + tags: + - 'v*' + +permissions: + contents: write # create the release + upload the asset + +jobs: + release-jar: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 25 + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: '25' + + - name: Resolve version from tag + id: ver + run: echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT" + + - name: Build fat JAR + run: | + chmod +x ./gradlew + ./gradlew shadowJar --no-daemon -PagentVersion="${{ steps.ver.outputs.version }}" + + - name: Stage release asset + run: | + mkdir -p release + cp build/libs/*-all.jar release/gpufl-agent.jar + + - name: Publish GitHub Release + env: + GH_TOKEN: ${{ github.token }} + run: | + gh release create "$GITHUB_REF_NAME" release/gpufl-agent.jar \ + --title "gpufl-agent ${{ steps.ver.outputs.version }}" \ + --generate-notes \ + || gh release upload "$GITHUB_REF_NAME" release/gpufl-agent.jar --clobber diff --git a/build.gradle b/build.gradle index 11de33b..46ca548 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,9 @@ plugins { } group = 'com.gpuflight' -version = '1.0-SNAPSHOT' +// Release CI passes -PagentVersion= so the JAR carries the real version; +// local builds fall back to the SNAPSHOT. +version = findProperty('agentVersion') ?: '1.0-SNAPSHOT' repositories { mavenCentral()