name: Maven Central Staging

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:

      # to get spec file in .github
      - uses: actions/checkout@v4

      # 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 }}
