From eb5c9bfef2161c9c9aa912b11bb3b2ffea7164e7 Mon Sep 17 00:00:00 2001 From: Mahmoud Ben Hassine Date: Fri, 1 Dec 2023 15:49:20 +0100 Subject: [PATCH] Add Maven Central staging workflow --- .github/release-files-spec.json | 28 +++++++++ .../workflows/maven-central-staging-43x.yml | 60 +++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 .github/release-files-spec.json create mode 100644 .github/workflows/maven-central-staging-43x.yml diff --git a/.github/release-files-spec.json b/.github/release-files-spec.json new file mode 100644 index 0000000000..66e9c681b5 --- /dev/null +++ b/.github/release-files-spec.json @@ -0,0 +1,28 @@ +{ + "files": [ + { + "aql": { + "items.find": { + "$and": [ + { + "@build.name": "${buildname}", + "@build.number": "${buildnumber}", + "path": {"$match": "org*"} + }, + { + "$or": [ + { + "name": {"$match": "*.pom"} + }, + { + "name": {"$match": "*.jar"} + } + ] + } + ] + } + }, + "target": "nexus/" + } + ] +} \ No newline at end of file diff --git a/.github/workflows/maven-central-staging-43x.yml b/.github/workflows/maven-central-staging-43x.yml new file mode 100644 index 0000000000..326591ec96 --- /dev/null +++ b/.github/workflows/maven-central-staging-43x.yml @@ -0,0 +1,60 @@ +name: Maven Central Staging for 4.3.x + +on: + workflow_dispatch: + inputs: + buildName: + description: "Artifactory build name" + required: true + buildNumber: + description: "Artifactory build number" + required: true + +jobs: + build: + runs-on: ubuntu-latest + steps: + + - name: Checkout source code + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + with: + ref: '4.3.x' + + # Setup jfrog cli + - uses: jfrog/setup-jfrog-cli@v1 + with: + version: 1.43.2 + env: + JF_ARTIFACTORY_SPRING: ${{ secrets.JF_ARTIFACTORY_SPRING }} + + # Extract build id from input + - name: Extract Build Id + run: | + echo JFROG_CLI_BUILD_NAME=${{ github.event.inputs.buildName }} >> $GITHUB_ENV + echo JFROG_CLI_BUILD_NUMBER=${{ github.event.inputs.buildNumber }} >> $GITHUB_ENV + + # Download released files + - name: Download Release Files + run: | + jfrog rt download \ + --spec .github/release-files-spec.json \ + --spec-vars "buildname=$JFROG_CLI_BUILD_NAME;buildnumber=$JFROG_CLI_BUILD_NUMBER" + + # Create checksums, signatures and create staging repo on central and upload + - uses: jvalkeal/nexus-sync@v0 + id: nexus + with: + url: ${{ secrets.OSSRH_URL }} + username: ${{ secrets.OSSRH_S01_TOKEN_USERNAME }} + password: ${{ secrets.OSSRH_S01_TOKEN_PASSWORD }} + staging-profile-name: ${{ secrets.OSSRH_STAGING_PROFILE_NAME }} + create: true + upload: true + generate-checksums: true + pgp-sign: true + pgp-sign-passphrase: ${{ secrets.GPG_PASSPHRASE }} + pgp-sign-private-key: ${{ secrets.GPG_PRIVATE_KEY }} + + # Print staging repo id + - name: Print Staging Repo Id + run: echo ${{ steps.nexus.outputs.staged-repository-id }}