name: Apps Plugin (Snapshot)

on:
  workflow_dispatch:
  push:
    branches:
      - 'main'
    paths:
      - 'spring-cloud-dataflow-apps-plugin/**'

env:
  MAVEN_THREADS: '-T 0.5C'

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@v4
      - uses: actions/setup-java@v3
        with:
          java-version: 17
          distribution: temurin
      - uses: actions/cache@v2
        with:
          path: ~/.m2/repository
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: |
            ${{ runner.os }}-m2-
      - uses: jfrog/setup-jfrog-cli@v3
        env:
          JF_URL: 'https://repo.spring.io'
          JF_ENV_SPRING: ${{ secrets.JF_ARTIFACTORY_SPRING }}
      - name: Configure JFrog Cli
        run: |
          jfrog mvnc --use-wrapper \
            --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: Build and Publish
        run: |
          jfrog mvn -U -gs settings.xml clean install
          jfrog rt build-publish
      - name: Capture Test Results
        if: ${{ always() }}
        uses: actions/upload-artifact@v4
        with:
          name: test-results
          path: '**/target/surefire-reports/**/*.*'
          retention-days: 7
          if-no-files-found: ignore
      - name: Clean cache
        run: |
          find ~/.m2/repository -type d -name '*SNAPSHOT' | xargs rm -fr
