name: Dubbo 3

on:
  pull_request:
    paths:
      - "**"
      - "!**/*.md"
      - "!docs/**"
  push:
    paths:
      - '**'
      - "!**/*.md"
      - "!docs/**"
  workflow_dispatch:

env:
  FORK_COUNT: 2
  FAIL_FAST: 0
  SHOW_ERROR_DETAIL: 1
  BUILD_OPTS: --batch-mode --no-transfer-progress --settings ${{github.workspace}}/.mvn/settings.xml
    -Dmaven.wagon.http.retryHandler.count=3 clean package dependency:copy-dependencies -DskipTests
  #multi-version size limit
  VERSIONS_LIMIT: 4
  #candidate versions (the dubbo snapshot version will be extracted from pom.xml and appended before CANDIDATE_VERSIONS )
  CANDIDATE_VERSIONS: '
    spring.version:4.3.30.RELEASE;
    spring-boot.version:1.5.22.RELEASE;
    spring-boot.version:2.4.1;
    '
  DUBBO_REF: '3.0'

jobs:
  build-samples:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
    steps:
      - uses: actions/checkout@v1
      - name: Cache local Maven repository
        uses: actions/cache@v2
        with:
          path: ~/.m2/repository
          key: ${{ runner.os }}-samples-maven-${{ hashFiles('**/pom.xml') }}
          restore-keys: |
            ${{ runner.os }}-samples-maven-
      - name: Set up JDK 8
        uses: actions/setup-java@v1
        with:
          java-version: 8
      - name: Build with Maven
        run: |
          ./mvnw $BUILD_OPTS

  build-dubbo:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
    # Map a step output to a job output
    outputs:
      commit_id: ${{ steps.git-checker.outputs.commit_id }}
      version: ${{ steps.git-checker.outputs.version }}
    steps:
      - uses: actions/checkout@v2
        with:
          repository: 'apache/dubbo'
          ref: ${{env.DUBBO_REF}}
      - name: Get commit id and dubbo version
        id: git-checker
        run: |
          # Calculate Dubbo Version
          REVISION=`awk '/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print $1;exit;}' pom.xml`
          echo "::set-output name=version::$REVISION"
          echo "dubbo version: $REVISION"
          #
          # commit id
          commit_id=`git log --format="%H" -n 1`
          echo "::set-output name=commit_id::$commit_id"
          echo "commit_id: $commit_id"
      - name: Dubbo cache
        id: dubbocache
        uses: actions/cache@v2
        with:
          path: ~/.m2/repository/org/apache/dubbo
          key: ${{ runner.os }}-dubbo-snapshot-${{steps.git-checker.outputs.commit_id}}
      - name: Cache local Maven repository
        if: steps.dubbocache.outputs.cache-hit != 'true'
        uses: actions/cache@v2
        with:
          path: ~/.m2/repository
          key: ${{ runner.os }}-dubbo-${{env.DUBBO_REF}}-maven-${{ hashFiles('**/pom.xml') }}
          restore-keys: |
            ${{ runner.os }}-dubbo-${{env.DUBBO_REF}}-maven-
      - name: Set up JDK 8
        if: steps.dubbocache.outputs.cache-hit != 'true'
        uses: actions/setup-java@v1
        with:
          java-version: 8
      - name: Build dubbo
        if: steps.dubbocache.outputs.cache-hit != 'true'
        run: |
          ./mvnw --batch-mode --no-transfer-progress  clean install -Dmaven.test.skip=true -Dmaven.test.skip.exec=true

  prepare_test:
    runs-on: ubuntu-latest
    env:
      #'JOB_COUNT' MUST match 'job_id' list of 'testjob'
      JOB_COUNT: 5
    steps:
      - uses: actions/checkout@v1
      - name: Prepare test list
        run: |
          bash ./test/scripts/prepare-test.sh
      - name: Upload test list
        uses: actions/upload-artifact@v2
        with:
          name: test-list
          path: test/jobs

  testjob:
    needs: [prepare_test, build-dubbo]
    name: 'Integration Test (Java${{matrix.java}}, Job${{matrix.job_id}})'
    runs-on: ubuntu-latest
    env:
      JAVA_VER: ${{matrix.java}}
      TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt
    strategy:
      fail-fast: false
      matrix:
        java: [8, 11]
        #testjob id list MUST match 'JOB_COUNT' of 'prepare_test'
        job_id: [1,2,3,4,5]
    steps:
      - uses: actions/checkout@v1
      - name: Set up JDK ${{matrix.java}}
        uses: actions/setup-java@v1
        with:
          java-version: ${{matrix.java}}
      - name: Cache local Maven repository
        uses: actions/cache@v2
        with:
          path: ~/.m2/repository
          key: ${{ runner.os }}-samples-maven-${{ hashFiles('**/pom.xml') }}
          restore-keys: |
            ${{ runner.os }}-samples-maven-
      - name: Dubbo cache
        uses: actions/cache@v2
        with:
          path: ~/.m2/repository/org/apache/dubbo
          key: ${{ runner.os }}-dubbo-snapshot-${{needs.build-dubbo.outputs.commit_id}}
      - name: Download test list
        uses: actions/download-artifact@v2
        with:
          name: test-list
          path: test/jobs/
      - name: Init Candidate Versions
        run: |
          DUBBO_VERSION="${{needs.build-dubbo.outputs.version}}"
          CANDIDATE_VERSIONS="dubbo.version:$DUBBO_VERSION;$CANDIDATE_VERSIONS"
          echo "CANDIDATE_VERSIONS=$CANDIDATE_VERSIONS" >> $GITHUB_ENV
      - name: Build test image
        run: |
          cd test && bash ./build-test-image.sh
      - name: Run tests
        run: cd test && bash ./run-tests.sh
      - name: Upload test result
        if: always()
        uses: actions/upload-artifact@v2
        with:
          name: test-result
          path: test/jobs/*-result*

  test_result:
    needs: [testjob]
    name: 'Test Result (Java${{matrix.java}})'
    if: always()
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        java: [8, 11]
    env:
      JAVA_VER: ${{matrix.java}}
    steps:
      - uses: actions/checkout@v1
      - name: Download test result
        uses: actions/download-artifact@v2
        with:
          name: test-result
          path: test/jobs/
      - name: Merge test result - java ${{matrix.java}}
        run: ./test/scripts/merge-test-results.sh
