---
name: Gerrit Composed Maven Merge

# yamllint disable-line rule:truthy
on:
  workflow_dispatch:
    inputs:
      GERRIT_BRANCH:
        description: "Branch that change is against"
        required: true
        type: string
      GERRIT_CHANGE_ID:
        description: "The ID for the change"
        required: true
        type: string
      GERRIT_CHANGE_NUMBER:
        description: "The Gerrit number"
        required: true
        type: string
      GERRIT_CHANGE_URL:
        description: "URL to the change"
        required: true
        type: string
      GERRIT_EVENT_TYPE:
        description: "Type of Gerrit event"
        required: true
        type: string
      GERRIT_PATCHSET_NUMBER:
        description: "The patch number for the change"
        required: true
        type: string
      GERRIT_PATCHSET_REVISION:
        description: "The revision sha"
        required: true
        type: string
      GERRIT_PROJECT:
        description: "Project in Gerrit"
        required: true
        type: string
      GERRIT_REFSPEC:
        description: "Gerrit refspec of change"
        required: true
        type: string

concurrency:
  # yamllint disable-line rule:line-length
  group: compose-maven-merge-${{ github.workflow }}-${{ github.event.inputs.GERRIT_CHANGE_ID || github.run_id }}
  cancel-in-progress: true

jobs:
  notify:
    runs-on: ubuntu-latest
    steps:
      - name: Notify job start
        # yamllint disable-line rule:line-length
        uses: lfit/gerrit-review-action@7c30179c3c9389545fccb0d458df59879372ae6a  # v0.6
        with:
          host: ${{ vars.GERRIT_SERVER }}
          username: ${{ vars.GERRIT_SSH_USER }}
          key: ${{ secrets.GERRIT_SSH_PRIVKEY }}
          known_hosts: ${{ vars.GERRIT_KNOWN_HOSTS }}
          gerrit-change-number: ${{ inputs.GERRIT_CHANGE_NUMBER }}
          gerrit-patchset-number: ${{ inputs.GERRIT_PATCHSET_NUMBER }}
          vote-type: clear
          comment-only: true
      - name: Allow replication
        run: sleep 10s

  run-maven-clm:
    needs: notify
    # yamllint disable-line rule:line-length
    uses: lfit/releng-reusable-workflows/.github/workflows/composed-maven-nexus-iq.yaml@main
    with:
      GERRIT_BRANCH: ${{ inputs.GERRIT_BRANCH }}
      GERRIT_CHANGE_ID: ${{ inputs.GERRIT_CHANGE_ID }}
      GERRIT_CHANGE_NUMBER: ${{ inputs.GERRIT_CHANGE_NUMBER }}
      GERRIT_CHANGE_URL: ${{ inputs.GERRIT_CHANGE_URL }}
      GERRIT_EVENT_TYPE: ${{ inputs.GERRIT_EVENT_TYPE }}
      GERRIT_PATCHSET_NUMBER: ${{ inputs.GERRIT_PATCHSET_NUMBER }}
      GERRIT_PATCHSET_REVISION: ${{ inputs.GERRIT_PATCHSET_REVISION }}
      GERRIT_PROJECT: ${{ inputs.GERRIT_PROJECT }}
      GERRIT_REFSPEC: ${{ inputs.GERRIT_REFSPEC }}
      # yamllint disable rule:line-length
      ENV_VARS: '{"MAVEN_OPTS": "--add-opens=java.base/java.util=ALL-UNNAMED"}'
      ENV_SECRETS: "{}"
      JDK_VERSION: "17"
      MVN_PHASES: "clean install dependency:tree com.sonatype.clm:clm-maven-plugin:2.41.0-02:index"
      MVN_OPTS: >-
        -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
        -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r
        -DaltDeploymentRepository=staging::default::file:"${GITHUB_WORKSPACE}"/m2repo
    secrets:
      NEXUS_IQ_PASSWORD: ${{ secrets.NEXUS_IQ_PASSWORD }}

  run-maven-sonar:
    needs: notify
    # yamllint disable-line rule:line-length
    uses: lfit/releng-reusable-workflows/.github/workflows/composed-maven-sonar-cloud.yaml@main
    with:
      GERRIT_BRANCH: ${{ inputs.GERRIT_BRANCH }}
      GERRIT_CHANGE_ID: ${{ inputs.GERRIT_CHANGE_ID }}
      GERRIT_CHANGE_NUMBER: ${{ inputs.GERRIT_CHANGE_NUMBER }}
      GERRIT_CHANGE_URL: ${{ inputs.GERRIT_CHANGE_URL }}
      GERRIT_EVENT_TYPE: ${{ inputs.GERRIT_EVENT_TYPE }}
      GERRIT_PATCHSET_NUMBER: ${{ inputs.GERRIT_PATCHSET_NUMBER }}
      GERRIT_PATCHSET_REVISION: ${{ inputs.GERRIT_PATCHSET_REVISION }}
      GERRIT_PROJECT: ${{ inputs.GERRIT_PROJECT }}
      GERRIT_REFSPEC: ${{ inputs.GERRIT_REFSPEC }}
      # yamllint disable rule:line-length
      ENV_VARS: '{"MAVEN_OPTS": "--add-opens=java.base/java.util=ALL-UNNAMED"}'
      ENV_SECRETS: "{}"
      JDK_VERSION: "17"
      SONAR_PROJECT_KEY: "onap_ccsdk-cds"
      SONAR_ORG: "onap"
      SONAR_ARGS: >
        -Dsonar.sources=src/main
        -Dsonar.test.inclusions=**/*.java,**/*.kt
        -Dsonar.tests=src/test
        -Dsonar.verbose=true
    secrets:
      SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

  report-status:
    if: ${{ always() }}
    needs: [notify, run-maven-clm, run-maven-sonar]
    runs-on: ubuntu-latest
    steps:
      - name: Get workflow conclusion
        uses: technote-space/workflow-conclusion-action@v3
      - name: Report workflow conclusion
        # yamllint disable-line rule:line-length
        uses: lfit/gerrit-review-action@7c30179c3c9389545fccb0d458df59879372ae6a  # v0.6
        with:
          host: ${{ vars.GERRIT_SERVER }}
          username: ${{ vars.GERRIT_SSH_USER }}
          key: ${{ secrets.GERRIT_SSH_PRIVKEY }}
          known_hosts: ${{ vars.GERRIT_KNOWN_HOSTS }}
          gerrit-change-number: ${{ inputs.GERRIT_CHANGE_NUMBER }}
          gerrit-patchset-number: ${{ inputs.GERRIT_PATCHSET_NUMBER }}
          vote-type: ${{ env.WORKFLOW_CONCLUSION }}
          comment-only: true
