name: Build and Test For Dubbo 3.1

on: [push, pull_request, workflow_dispatch]

permissions:
  contents: read

env:
  FORK_COUNT: 2
  FAIL_FAST: 0
  SHOW_ERROR_DETAIL: 1
  #multi-version size limit
  VERSIONS_LIMIT: 4
  CANDIDATE_VERSIONS: '
    spring.version:4.3.30.RELEASE;
    spring-boot.version:1.5.22.RELEASE;
    spring-boot.version:2.4.1;
    '

jobs:
  build-source:
    runs-on: ubuntu-18.04
    outputs:
      version: ${{ steps.dubbo-version.outputs.version }}
    steps:
      - uses: actions/checkout@v2
        with:
          path: dubbo
      - uses: actions/setup-java@v1
        with:
          java-version: 8
      - uses: actions/cache@v2
        name: "Cache local Maven repository"
        with:
          path: ~/.m2/repository
          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
      - name: "Dubbo cache"
        uses: actions/cache@v2
        with:
          path: ~/.m2/repository/org/apache/dubbo
          key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
      - name: "Build Dubbo with Maven"
        run: |
          cd ./dubbo
          ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean source:jar install -Pjacoco,rat,checkstyle -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -Dmaven.test.skip=true -Dmaven.test.skip.exec=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
      - name: "Pack rat file if failure"
        if: failure()
        run: 7z a ${{ github.workspace }}/rat.zip *rat.txt -r
      - name: "Upload rat file if failure"
        if: failure()
        uses: actions/upload-artifact@v2
        with:
          name: "rat-file"
          path: ${{ github.workspace }}/rat.zip
      - name: "Pack checkstyle file if failure"
        if: failure()
        run: 7z a ${{ github.workspace }}/checkstyle.zip *checkstyle* -r
      - name: "Upload checkstyle file if failure"
        if: failure()
        uses: actions/upload-artifact@v2
        with:
          name: "checkstyle-file"
          path: ${{ github.workspace }}/checkstyle.zip
      - name: "Calculate Dubbo Version"
        id: dubbo-version
        run: |
          REVISION=`awk '/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print $1;exit;}' ./dubbo/pom.xml`
          echo "::set-output name=version::$REVISION"
          echo "dubbo version: $REVISION"

  unit-test-prepare:
    name: " Preparation for Unit Test On ${{ matrix.os }} (JDK: ${{ matrix.jdk }})"
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ ubuntu-18.04, windows-2019 ]
        jdk: [ 8, 11, 17 ]
    env:
      DISABLE_FILE_SYSTEM_TEST: true
      ZOOKEEPER_VERSION: 3.6.3
    steps:
      - uses: actions/cache@v2
        name: "Cache zookeeper binary archive"
        id: "cache-zookeeper"
        with:
          path: ${{ github.workspace }}/.tmp/zookeeper
          key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
          restore-keys: |
            zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
      - name: "Set up msys2 if necessary"
        if: ${{ startsWith( matrix.os, 'windows') && steps.cache-zookeeper.outputs.cache-hit != 'true' }}
        uses: msys2/setup-msys2@v2
        with:
          release: false  # support cache, see https://github.com/msys2/setup-msys2#context
      - name: "Download zookeeper binary archive in Linux OS"
        if: ${{ startsWith( matrix.os, 'ubuntu') && steps.cache-zookeeper.outputs.cache-hit != 'true' }}
        run: |
          mkdir -p ${{ github.workspace }}/.tmp/zookeeper
          wget -c https://archive.apache.org/dist/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
          wget -c https://apache.website-solution.net/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
          wget -c http://apache.stu.edu.tw/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
          wget -c http://ftp.jaist.ac.jp/pub/apache/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
          wget -c http://apache.mirror.cdnetworks.com/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
          wget -c http://mirror.apache-kr.org/apache/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
          echo "list the downloaded zookeeper binary archive"
          ls -al ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
      - name: "Download zookeeper binary archive in Windows OS"
        if: ${{ startsWith( matrix.os, 'windows') && steps.cache-zookeeper.outputs.cache-hit != 'true' }}
        shell: msys2 {0}
        run: |
          mkdir -p ${{ github.workspace }}/.tmp/zookeeper
          wget -c https://archive.apache.org/dist/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
          wget -c https://apache.website-solution.net/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
          wget -c http://apache.stu.edu.tw/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
          wget -c http://ftp.jaist.ac.jp/pub/apache/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
          wget -c http://apache.mirror.cdnetworks.com/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
          wget -c http://mirror.apache-kr.org/apache/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
          echo "list the downloaded zookeeper binary archive"
          ls -al ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz

  unit-test:
    needs: [build-source, unit-test-prepare]
    name: "Unit Test On ${{ matrix.os }} (JDK: ${{ matrix.jdk }})"
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ ubuntu-18.04, windows-2019 ]
        jdk: [ 8, 11, 17 ]
    env:
      DISABLE_FILE_SYSTEM_TEST: true
    steps:
      - uses: actions/checkout@v2
      - name: "Set up JDK ${{ matrix.jdk }}"
        uses: actions/setup-java@v1
        with:
          java-version: ${{ matrix.jdk }}
      - uses: actions/cache@v2
        name: "Cache local Maven repository"
        with:
          path: ~/.m2/repository
          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
          restore-keys: |
            ${{ runner.os }}-maven-
      - name: "Test with Maven with Integration Tests"
        timeout-minutes: 70
        if: ${{ startsWith( matrix.os, 'ubuntu') }}
        run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false -DskipIntegrationTests=false -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
      - name: "Test with Maven without Integration Tests"
        timeout-minutes: 90
        if: ${{ startsWith( matrix.os, 'windows') }}
        run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
      - name: "Upload coverage to Codecov"
        uses: codecov/codecov-action@v1

  unit-test-fastjson2:
    needs: [build-source, unit-test-prepare]
    name: "Unit Test On ${{ matrix.os }} (JDK: ${{ matrix.jdk }}, Serialization: fastjson2)"
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ ubuntu-18.04, windows-2019 ]
        jdk: [ 8, 11, 17 ]
    env:
      DISABLE_FILE_SYSTEM_TEST: true
      DUBBO_DEFAULT_SERIALIZATION: fastjson2
      MAVEN_SUREFIRE_ADD_OPENS: true
    steps:
      - uses: actions/checkout@v2
      - name: "Set up JDK ${{ matrix.jdk }}"
        uses: actions/setup-java@v1
        with:
          java-version: ${{ matrix.jdk }}
      - uses: actions/cache@v2
        name: "Cache local Maven repository"
        with:
          path: ~/.m2/repository
          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
          restore-keys: |
            ${{ runner.os }}-maven-
      - name: "Test with Maven with Integration Tests"
        timeout-minutes: 70
        if: ${{ startsWith( matrix.os, 'ubuntu') }}
        run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false -DskipIntegrationTests=false -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
      - name: "Test with Maven without Integration Tests"
        timeout-minutes: 90
        if: ${{ startsWith( matrix.os, 'windows') }}
        run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
      - name: "Upload coverage to Codecov"
        uses: codecov/codecov-action@v1

  integration-test-prepare:
    runs-on: ubuntu-18.04
    env:
      JOB_COUNT: 3
    steps:
      - uses: actions/checkout@v2
        with:
          repository: 'apache/dubbo-samples'
          ref: master
      - 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

  integration-test-job:
    needs: [build-source, integration-test-prepare]
    name: "Integration Test on ubuntu-18.04 (JobId: ${{matrix.job_id}})"
    runs-on: ubuntu-18.04
    timeout-minutes: 30
    env:
      JAVA_VER: 8
      TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt
    strategy:
      fail-fast: false
      matrix:
        job_id: [1, 2, 3]
    steps:
      - uses: actions/checkout@v2
        with:
          repository: 'apache/dubbo-samples'
          ref: master
      - name: "Cache local Maven repository"
        uses: actions/cache@v2
        with:
          path: ~/.m2/repository
          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
          restore-keys: |
            ${{ runner.os }}-maven-
      - name: "Restore Dubbo cache"
        uses: actions/cache@v2
        with:
          path: ~/.m2/repository/org/apache/dubbo
          key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
      - name: "Download test list"
        uses: actions/download-artifact@v2
        with:
          name: test-list
          path: test/jobs/
      - name: "Set up JDK 8"
        uses: actions/setup-java@v1
        with:
          java-version: 8
      - name: "Init Candidate Versions"
        run: |
          DUBBO_VERSION="${{needs.build-source.outputs.version}}"
          CANDIDATE_VERSIONS="dubbo.version:$DUBBO_VERSION;compiler.version:$DUBBO_VERSION;$CANDIDATE_VERSIONS;dubbo.compiler.version:$DUBBO_VERSION"
          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*

  integration-test-result:
    needs: [integration-test-job]
    if: always()
    runs-on: ubuntu-18.04
    env:
      JAVA_VER: 8
    steps:
      - uses: actions/checkout@v2
        with:
          repository: 'apache/dubbo-samples'
          ref: master
      - name: "Download test result"
        uses: actions/download-artifact@v2
        with:
          name: test-result
          path: test/jobs/
      - name: "Merge test result"
        run: ./test/scripts/merge-test-results.sh
