name: Nightly - Dubbo 2

on:
  schedule:
    # nightly build at 2:00+8, should convert into UTC
    - cron:  '0 18 * * *'
    - cron:  '0 21 * * *'
  workflow_dispatch:
    inputs:
      remark:
        description: 'test description'
        required: false
        default: 'test'


env:
  FORK_COUNT: 1
  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: 12
  #candidate versions (the dubbo snapshot version will be extracted from pom.xml and appended before CANDIDATE_VERSIONS )
  CANDIDATE_VERSIONS: '
    dubbo.version: 2.7.8;
    spring.version: 4.2.9.RELEASE, 4.3.30.RELEASE, 5.1.20.RELEASE, 5.3.3;
    spring-boot.version: 1.1.12.RELEASE, 1.2.8.RELEASE, 1.3.8.RELEASE, 1.4.7.RELEASE, 1.5.22.RELEASE;
    spring-boot.version: 2.0.9.RELEASE, 2.1.18.RELEASE, 2.2.12.RELEASE, 2.3.7.RELEASE, 2.4.1
    '
  DUBBO_REF: 'master'
  DUBBO_SPRING_BOOT_REF: '2.7.x'

jobs:
  build-samples:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        java: [8, 11]
    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 ${{matrix.java}}
        uses: actions/setup-java@v1
        with:
          java-version: ${{matrix.java}}
      - 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}}
          path: dubbo
      - uses: actions/checkout@v2
        with:
          repository: 'apache/dubbo-spring-boot-project'
          ref: ${{env.DUBBO_SPRING_BOOT_REF}}
          path: dubbo-spring-boot-project
      - 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;}' dubbo/pom.xml`
          echo "::set-output name=version::$REVISION"
          echo "dubbo version: $REVISION"
          #
          #concat dubbo/dubbo-spring-boot commit id
          cd dubbo
          dubbo_commit_id=`git log --format="%H" -n 1`
          cd ../dubbo-spring-boot-project
          dubbo_spring_boot_commit_id=`git log --format="%H" -n 1`
          cd ..
          commit_id=$dubbo_commit_id-$dubbo_spring_boot_commit_id
          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: |
          cd dubbo
          ./mvnw --batch-mode --no-transfer-progress  clean install -Dmaven.test.skip=true -Dmaven.test.skip.exec=true
      - name: Build dubbo-spring-boot
        if: steps.dubbocache.outputs.cache-hit != 'true'
        run: |
          cd dubbo-spring-boot-project
          ./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
