name: Apps Plugin (Next Development Version)

on:
  workflow_dispatch:

jobs:
  build_deploy_snapshot:
    if: ${{ github.repository == 'spring-cloud/stream-applications' }}
    runs-on: ubuntu-latest
    concurrency:
      group: ${{ github.workflow }}-${{ github.ref }}
      cancel-in-progress: true
    defaults:
      run:
        working-directory: spring-cloud-dataflow-apps-plugin
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-java@v3
        with:
          java-version: 17
          distribution: temurin
      - uses: jvalkeal/setup-maven@v1
        with:
          maven-version: 3.8.8
          maven-mirror: 'https://dlcdn.apache.org/maven/maven-3/'
      - uses: jfrog/setup-jfrog-cli@v3
        with:
          version: 1.46.4
        env:
          JF_ARTIFACTORY_SPRING: ${{ secrets.JF_ARTIFACTORY_SPRING }}
      - uses: actions/cache@v2
        with:
          path: ~/.m2/repository
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: |
            ${{ runner.os }}-m2-
      - name: Configure JFrog Cli
        run: |
          jfrog rt mvnc \
            --server-id-resolve=${{ vars.JF_SERVER_ID }} \
            --server-id-deploy=${{ vars.JF_SERVER_ID }} \
            --repo-resolve-releases=libs-milestone \
            --repo-resolve-snapshots=libs-snapshot \
            --repo-deploy-releases=libs-milestone-local \
            --repo-deploy-snapshots=libs-snapshot-local
          echo JFROG_CLI_BUILD_NAME=spring-cloud-dataflow-apps-plugin-main-snapshot >> $GITHUB_ENV
          echo JFROG_CLI_BUILD_NUMBER=$GITHUB_RUN_NUMBER >> $GITHUB_ENV
      - name: Update next snapshot version
        run: |
          echo JFROG_CLI_BUILD_NAME=spring-cloud-dataflow-apps-plugin-main-ndv >> $GITHUB_ENV
          echo JFROG_CLI_BUILD_NUMBER=$GITHUB_RUN_NUMBER >> $GITHUB_ENV
          jfrog rt mvn build-helper:parse-version versions:set \
            -DprocessAllModules=true \
            -DgenerateBackupPoms=false \
            -Dartifactory.publish.artifacts=false \
            -DnewVersion='${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.nextIncrementalVersion}-SNAPSHOT' \
            -B
          jfrog rt build-clean
          mvn clean
          jfrog rt mvn -gs settings.xml install -DskipTests -B         
          jfrog rt build-publish
      - name: Commit next snapshot version changes
        uses: jvalkeal/build-zoo-handler@v0.0.4
        with:
          commit-changes-branch: main
          commit-changes-message: "[Apps Plugin ${project.version}] Next development version"
      - name: Clean cache
        run: |
          find ~/.m2/repository -type d -name '*SNAPSHOT' | xargs rm -fr
