diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index b7de327be..89c98a0d7 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -401,5 +401,9 @@ jobs:
distribution: oracle
java-version: 17
cache: maven
+ gpg-private-key: ${{ secrets.GPG_SIGNING_KEY }}
+ gpg-passphrase: MAVEN_GPG_PASSPHRASE
- name: Build the package
run: mvn clean install -DskipTests
+ env:
+ MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_SIGNING_KEY_PASSWORD }}
diff --git a/.github/workflows/publish-edge.yml b/.github/workflows/publish-edge.yml
index 8b5da138d..46da5378e 100644
--- a/.github/workflows/publish-edge.yml
+++ b/.github/workflows/publish-edge.yml
@@ -250,3 +250,29 @@ jobs:
path: packages/cpp/tools/packaging/*.${{ matrix.type }}
name: libarmonik.${{ matrix.type }}
# TODO Upload to a more permanent storage
+
+ release-java-package:
+ needs: [version]
+ name: Release Java Package
+ runs-on: ubuntu-latest
+ defaults:
+ run:
+ working-directory: packages/java
+ steps:
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
+ - name: Set up Maven Central Repository
+ uses: actions/setup-java@v4
+ with:
+ java-version: '17'
+ distribution: temurin
+ server-id: central
+ server-username: MAVEN_USERNAME
+ server-password: MAVEN_PASSWORD
+ gpg-private-key: ${{ secrets.GPG_SIGNING_KEY }}
+ gpg-passphrase: MAVEN_GPG_PASSPHRASE
+ - name: Publish package
+ run: mvn --batch-mode deploy versions:set -DnewVersion=${{ needs.version.outputs.version }}
+ env:
+ MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
+ MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
+ MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_SIGNING_KEY_PASSWORD }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index b3aa48a47..fd7caa496 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -206,6 +206,30 @@ jobs:
run: |
gh release upload ${{ github.ref_name }} packages/cpp/tools/packaging/*.${{ matrix.type }}
+ release-java-package:
+ needs: [verify-versions]
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
+ - name: Set up Maven Central Repository
+ uses: actions/setup-java@v4
+ with:
+ java-version: '17'
+ distribution: temurin
+ server-id: central
+ server-username: MAVEN_USERNAME
+ server-password: MAVEN_PASSWORD
+ gpg-private-key: ${{ secrets.GPG_SIGNING_KEY }}
+ gpg-passphrase: MAVEN_GPG_PASSPHRASE
+ - name: Publish package
+ run: |
+ cd packages/java
+ mvn --batch-mode deploy -DskipTests
+ env:
+ MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
+ MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
+ MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_SIGNING_KEY_PASSWORD }}
+
update-changelog:
needs: [verify-versions]
runs-on: ubuntu-latest
diff --git a/packages/java/pom.xml b/packages/java/pom.xml
index 45c41e740..d7ed30526 100644
--- a/packages/java/pom.xml
+++ b/packages/java/pom.xml
@@ -4,10 +4,43 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
- org.aneo
+ fr.aneo
armonik-java
GRPC java binding for the Armonik orchestrator API
- 0.1.0
+ 3.21.0
+
+ armonik-java
+ https://github.com/aneoconsulting/ArmoniK.Api
+
+
+
+ Junior DONGO
+ jdongo@aneo.fr
+
+
+ Hassan EL-MZABI
+ elmzabi.hassan18@gmail.com
+
+
+ Salah Eddine BOUKHETTA
+ sboukhetta@aneo.fr
+
+
+
+
+
+ Apache License, Version 2.0
+ http://www.apache.org/licenses/
+ repo
+
+
+
+
+ https://github.com/aneoconsulting/ArmoniK.Api
+ scm:git:https://github.com/aneoconsulting/ArmoniK.Api.git
+ scm:git:https://github.com/aneoconsulting/ArmoniK.Api.git
+ HEAD
+
17
@@ -131,7 +164,73 @@
+
+ org.codehaus.mojo
+ versions-maven-plugin
+ 2.17.1
+
+
+ org.sonatype.central
+ central-publishing-maven-plugin
+ 0.5.0
+ true
+
+ central
+ true
+ true
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 3.3.0
+
+
+ attach-sources
+ verify
+
+ jar-no-fork
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.6.3
+
+
+ attach-javadoc
+
+ jar
+
+
+
+
+ java
+ none
+
+
+
+ org.apache.maven.plugins
+ maven-gpg-plugin
+ 3.1.0
+
+
+ sign-artifacts
+ verify
+
+ sign
+
+
+
+
+
+ --pinentry-mode
+ loopback
+
+
+
-
diff --git a/scripts/update-versions.ts b/scripts/update-versions.ts
index 05a55f902..01f6fd26d 100644
--- a/scripts/update-versions.ts
+++ b/scripts/update-versions.ts
@@ -7,6 +7,8 @@ import {
csharpFiles,
csharpPatternPackageVersion,
csharpPatternVersion,
+ javaFiles,
+ javaPattern,
jsFiles,
jsPattern,
} from './versions/_contants'
@@ -36,3 +38,6 @@ jsFiles.forEach(_readAndReplace(jsPattern, `"version": "${version}"`))
consola.info('Updating cpp projects to ', version)
cppFiles.forEach(_readAndReplace(cppPattern, `set(version ${version})`))
+
+consola.info('Updating java projects to ', version)
+javaFiles.forEach(_readAndReplace(javaPattern, `${version}`))
diff --git a/scripts/verify-versions.ts b/scripts/verify-versions.ts
index ae7b4ef02..dc51ada28 100644
--- a/scripts/verify-versions.ts
+++ b/scripts/verify-versions.ts
@@ -6,6 +6,8 @@ import {
csharpFiles,
csharpPatternPackageVersion,
csharpPatternVersion,
+ javaFiles,
+ javaPattern,
jsFiles,
jsPattern,
} from './versions/_contants'
@@ -22,6 +24,8 @@ consola.info('Finding C# projects versions')
csharpFiles.forEach(_readAndFind(csharpPatternVersion, versions))
consola.info('Finding Cpp projects versions')
cppFiles.forEach(_readAndFind(cppPattern, versions))
+consola.info('Finding java projects versions')
+javaFiles.forEach(_readAndFind(javaPattern, versions))
const versionsArray = [...versions.values()]
const uniqueVersions = [...new Set(versionsArray)]
diff --git a/scripts/versions/_contants.ts b/scripts/versions/_contants.ts
index 268e4bb8d..8dd403904 100644
--- a/scripts/versions/_contants.ts
+++ b/scripts/versions/_contants.ts
@@ -12,3 +12,6 @@ export const jsFiles = ['packages/angular/projects/aneoconsultingfr/armonik.api.
export const cppPattern = /set\(version (?.*)\)/
export const cppFiles = ['packages/cpp/CMakeLists.txt']
+
+export const javaPattern = /(?.*)<\/version>/
+export const javaFiles = ['packages/java/pom.xml']