name: CI

on:
  workflow_dispatch:

env:
  MAVEN_THREADS: '-T 0.5C'

jobs:
  build:
    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@v2
      - uses: actions/cache@v2
        with:
          path: ~/.m2/repository
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: |
            ${{ runner.os }}-m2-
      - uses: actions/setup-java@v3
        with:
          java-version: '8'
          distribution: 'liberica'
      - 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@v1
        with:
          version: 1.46.4
        env:
          JF_ARTIFACTORY_SPRING: ${{ secrets.JF_ARTIFACTORY_SPRING }}
      - name: Configure JFrog Cli
        run: |
          jfrog rt mvnc \
            --server-id-resolve=repo.spring.io \
            --server-id-deploy=repo.spring.io \
            --repo-resolve-releases=libs-milestone \
            --repo-resolve-snapshots=libs-snapshot \
            --repo-deploy-releases=libs-release-local \
            --repo-deploy-snapshots=libs-snapshot-local
          echo JFROG_CLI_BUILD_NAME=spring-cloud-dataflow-apps-plugin-main >> $GITHUB_ENV
          echo JFROG_CLI_BUILD_NUMBER=$GITHUB_RUN_NUMBER >> $GITHUB_ENV
          echo spring_cloud_dataflow_apps_plugin_version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) >> $GITHUB_ENV
      - name: Build and Publish
        run: |
          mvn clean
          jfrog rt mvn -gs settings.xml -Pfull -B install
          jfrog rt build-publish
      - name: Capture Test Results
        if: ${{ always() }}
        uses: actions/upload-artifact@v3
        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
