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']