# This is a basic workflow to help you get started with Actions

name: Publish to Maven Central

# Trigger this workflow whenever code is pushed to "master" branch.defaults:
# We would like to publish to maven central for both snapshot and release versions.
on:
  workflow_dispatch:
    inputs:
      release_candidate:
        description: The release candidate number
        required: true
        default: '1'
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  # This workflow contains a single job called "build"
  build:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
    # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
    - uses: actions/checkout@v4

    - name: Gradle wrapper validation
      uses: gradle/actions/wrapper-validation@v3

    # FIXME Check https://github.com/allure-framework/allure2/blob/430255d8cf5c236ed29bc0df0b72dcd9389c3df9/.github/workflows/release.yaml
    - name: Publish Release Candidate
      env:
        ORG_GRADLE_PROJECT_ghGitSourceUsername: ${{ github.actor }}
        ORG_GRADLE_PROJECT_ghGitSourcePassword: ${{ secrets.GITHUB_TOKEN }}
        ORG_GRADLE_PROJECT_ghNexusUsername: ${{ secrets.NEXUS_USERNAME }}
        ORG_GRADLE_PROJECT_ghNexusPassword: ${{ secrets.NEXUS_PASSWORD }}
        ORG_GRADLE_PROJECT_signingKeyId: ${{ secrets.GPG_KEY_ID }}
        ORG_GRADLE_PROJECT_signingKey: ${{ secrets.GPG_PRIVATE_KEY }}
        ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.GPG_PASSPHRASE }}
        ORG_GRADLE_PROJECT_rc: ${{ github.event.inputs.release_candidate }}
      run: |
        ./gradlew -PghDryRun prepareVote

    - name: Display next step
      run: |
        echo "Now run 'release-maven-central.yml' workflow using the same Release Candidate Number (rc #)"
