name: Verify Staged Artifacts

on:
  workflow_dispatch:
    inputs:
      releaseVersion:
        description: 'Release version like 5.0.0-M1, 5.1.0-RC1, 5.2.0 etc.'
        required: true
        type: string

env:
  GRADLE_ENTERPRISE_CACHE_USERNAME: ${{ secrets.GRADLE_ENTERPRISE_CACHE_USER }}
  GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GRADLE_ENTERPRISE_CACHE_PASSWORD }}
  GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }}
  ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
  ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}

jobs:
  verify-staged-with-samples:
    runs-on: ubuntu-latest
    steps:

      - name: Checkout Samples Repo
        uses: actions/checkout@v4
        with:
          repository: spring-projects/spring-integration-samples
          ref: ${{ github.ref_name }}
          show-progress: false

      - name: Set up Gradle
        uses: spring-io/spring-gradle-build-action@v2

      - name: Prepare Samples project against Staging
        run: |
          printf "allprojects {
                  repositories {
                    maven { 
                      url 'https://repo.spring.io/libs-staging-local'
                      credentials {
                        username = '$ARTIFACTORY_USERNAME'
                        password = '$ARTIFACTORY_PASSWORD'
                      }
                    }
                  }
                }" > staging-repo-init.gradle
          
          sed -i "1,/springIntegrationVersion.*/s/springIntegrationVersion.*/springIntegrationVersion='${{ inputs.releaseVersion }}'/" build.gradle  

      - name: Verify Spring Integration Samples against staged release
        run: gradle check --init-script staging-repo-init.gradle
