From 5118846a9f6e38eda3f5501c34ddb9c3ed115f53 Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Mon, 3 Nov 2025 15:07:40 +0100 Subject: [PATCH 1/2] feat: also release cli as native executable --- .github/workflows/native-build.yml | 12 ++-- .github/workflows/release.yml | 4 +- cli/pom.xml | 55 ++++++++++++++++++- cli/src/main/assembly/assembly.xml | 17 ++++++ .../net/laprun/sustainability/cli/Power.java | 1 - pom.xml | 42 ++++++++++++++ 6 files changed, 119 insertions(+), 12 deletions(-) create mode 100644 cli/src/main/assembly/assembly.xml diff --git a/.github/workflows/native-build.yml b/.github/workflows/native-build.yml index f2290a39..d89bf708 100644 --- a/.github/workflows/native-build.yml +++ b/.github/workflows/native-build.yml @@ -1,4 +1,4 @@ -name: Native build test +name: Native build on: workflow_dispatch: @@ -43,18 +43,14 @@ jobs: - name: 'Build Native Image' run: | - pushd server - mvn -ntp -B --file pom.xml -Pnative package -DskipTests - popd + mvn -ntp -B --file pom.xml -Pnative package -DskipTests -pl server,cli - name: 'Create distribution' run: | - pushd server - mvn -ntp -B --file pom.xml -Pdist package -DskipTests - popd + mvn -ntp -B --file pom.xml -Pdist package -DskipTests -pl server,cli - name: 'Upload build artifact' uses: actions/upload-artifact@v5 with: name: power-server-${{ runner.os }}-${{ runner.arch }} - path: server/target/distributions/*.tar.gz + path: **/target/distributions/*.tar.gz diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f7b29da9..26c0ff77 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -109,7 +109,7 @@ jobs: - name: 'Set up Java' uses: actions/setup-java@v5 with: - java-version: 17 + java-version: 21 distribution: 'temurin' cache: maven @@ -117,7 +117,7 @@ jobs: env: JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - mvn -ntp -B --file server/pom.xml -Prelease -DartifactsDir=artifacts jreleaser:full-release + mvn -ntp -B --file pom.xml -Prelease -DartifactsDir=artifacts jreleaser:full-release -pl server,cli - name: 'JReleaser output' if: always() diff --git a/cli/pom.xml b/cli/pom.xml index e339d881..b5e5f87e 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -10,6 +10,10 @@ power-server-cli power-server : cli A CLI command to measure power consumption of the specified process + + ${project.build.directory}/distributions + + net.laprun.sustainability @@ -33,6 +37,13 @@ + + + kr.motd.maven + os-maven-plugin + ${os-maven-plugin.version} + + net.revelc.code.formatter @@ -43,5 +54,47 @@ - + + + dist + + + + maven-assembly-plugin + ${maven-assembly-plugin.version} + + + make-distribution + package + + single + + + + + false + false + ${project.artifactId}-${project.version}-${os.detected.classifier} + ${distribution.directory} + ${project.build.directory}/assembly/work + + src/main/assembly/assembly.xml + + + + + + + + dist-windows + + + windows + + + + .exe + + + diff --git a/cli/src/main/assembly/assembly.xml b/cli/src/main/assembly/assembly.xml new file mode 100644 index 00000000..e02aad18 --- /dev/null +++ b/cli/src/main/assembly/assembly.xml @@ -0,0 +1,17 @@ + + dist + + tar.gz + + + + ${project.build.directory}/${project.artifactId}-${project.version}-runner${executable-suffix} + + ./bin + ${project.artifactId}${executable-suffix} + + + \ No newline at end of file diff --git a/cli/src/main/java/net/laprun/sustainability/cli/Power.java b/cli/src/main/java/net/laprun/sustainability/cli/Power.java index 37024eba..3f0e7777 100644 --- a/cli/src/main/java/net/laprun/sustainability/cli/Power.java +++ b/cli/src/main/java/net/laprun/sustainability/cli/Power.java @@ -1,6 +1,5 @@ package net.laprun.sustainability.cli; -import java.io.IOException; import java.util.Optional; import java.util.concurrent.TimeUnit; diff --git a/pom.xml b/pom.xml index 52b66adc..a2cf8b4d 100644 --- a/pom.xml +++ b/pom.xml @@ -340,6 +340,48 @@ + + power-server-cli + CLI + + power + + BINARY + + RELEASE + true + + + RELEASE + + + + {{artifactsDir}}/{{distributionName}}-{{projectVersion}}-linux-x86_64.tar.gz + artifacts/{{distributionName}}-{{projectEffectiveVersion}}-linux-x86_64.tar.gz + linux-x86_64 + + + + {{artifactsDir}}/{{distributionName}}-{{projectVersion}}-osx-x86_64.tar.gz + artifacts/{{distributionName}}-{{projectEffectiveVersion}}-osx-x86_64.tar.gz + osx-x86_64 + + + {{artifactsDir}}/{{distributionName}}-{{projectVersion}}-osx-aarch_64.tar.gz + + {{artifactsDir}}/{{distributionName}}-{{projectEffectiveVersion}}-osx-aarch_64.tar.gz + osx-aarch_64 + + + From fc3cb412ba071b02dd09cf2b396cd42cf77d0c76 Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Mon, 3 Nov 2025 15:44:42 +0100 Subject: [PATCH 2/2] fix: paths for upload --- .github/workflows/native-build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/native-build.yml b/.github/workflows/native-build.yml index d89bf708..2a7fbc0e 100644 --- a/.github/workflows/native-build.yml +++ b/.github/workflows/native-build.yml @@ -53,4 +53,6 @@ jobs: uses: actions/upload-artifact@v5 with: name: power-server-${{ runner.os }}-${{ runner.arch }} - path: **/target/distributions/*.tar.gz + path: | + server/target/distributions/*.tar.gz + cli/target/distributions/*.tar.gz