You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2021/01/26 13:04:49 UTC

[dubbo] branch 3.0 updated: Add Github Actions UT and IT check for 3.0 branch (#7136)

This is an automated email from the ASF dual-hosted git repository.

albumenj pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.0 by this push:
     new a38471d  Add Github Actions UT and IT check for 3.0 branch (#7136)
a38471d is described below

commit a38471d173287bb8e3e62d46e758f9696d4839fa
Author: Albumen Kevin <jh...@gmail.com>
AuthorDate: Tue Jan 26 21:04:24 2021 +0800

    Add Github Actions UT and IT check for 3.0 branch (#7136)
    
    * Add Github Actions UT and IT check for 3.0 branch
    
    * Add workflow_dispatch support
---
 .github/workflows/build-and-test-3.yml | 227 +++++++++++++++++++++++++++++++++
 1 file changed, 227 insertions(+)

diff --git a/.github/workflows/build-and-test-3.yml b/.github/workflows/build-and-test-3.yml
new file mode 100644
index 0000000..862467a
--- /dev/null
+++ b/.github/workflows/build-and-test-3.yml
@@ -0,0 +1,227 @@
+name: Build and Test For Dubbo 3
+
+on: [push, pull_request, workflow_dispatch]
+
+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;
+    '
+  DUBBO_SPRING_BOOT_REF: '3.0.x'
+
+jobs:
+  build-source:
+    runs-on: ubuntu-18.04
+    steps:
+      - uses: actions/checkout@v2
+      - 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 with Maven"
+        run: ./mvnw --batch-mode -U -e --no-transfer-progress  clean install -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -Dmaven.test.skip=true -Dmaven.test.skip.exec=true
+      - name: "Calculate Dubbo Version"
+        run: |
+          REVISION=`awk '/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print $1;exit;}' pom.xml`
+          mkdir dubbo-version
+          echo $REVISION > dubbo-version/dubbo-version
+      - name: "Upload Dubbo version"
+        uses: actions/upload-artifact@v2
+        with:
+          name: dubbo-version
+          path: dubbo-version
+
+  build-dubbo-spring-boot:
+    runs-on: ubuntu-latest
+    outputs:
+      commit_id: ${{ steps.git-checker.outputs.commit_id }}
+      cache-hit: ${{ steps.dubbocache.outputs.cache-hit }}
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          repository: 'apache/dubbo-spring-boot-project'
+          ref: ${{env.DUBBO_SPRING_BOOT_REF}}
+      - name: "Get commit id"
+        id: git-checker
+        run: |
+          #compare dubbo commit id
+          last_commit_id=`git log --format="%H" -n 1`
+          echo "::set-output name=commit_id::$last_commit_id"
+          echo "commit_id: $last_commit_id"
+      - name: "Dubbo-spring-boot cache"
+        id: dubbocache
+        uses: actions/cache@v2
+        with:
+          path: ~/.m2/repository/org/apache/dubbo
+          key: ${{ runner.os }}-dubbo-spring-boot-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-spring-boot-${{env.DUBBO_SPRING_BOOT_REF}}-maven-${{ hashFiles('**/pom.xml') }}
+          restore-keys: |
+            ${{ runner.os }}-dubbo-spring-boot-${{env.DUBBO_SPRING_BOOT_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 spring boot"
+        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
+
+  unit-test:
+    needs: [build-source]
+    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 ]
+    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: 30
+        if: ${{ startsWith( matrix.os, 'ubuntu') }}
+        run: ./mvnw --batch-mode -U -e --no-transfer-progress clean test -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false -DskipIntegrationTests=false -Dcheckstyle.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true
+      - name: "Test with Maven without Integration Tests"
+        env:
+          DISABLE_FILE_SYSTEM_TEST: true
+        timeout-minutes: 30
+        if: ${{ startsWith( matrix.os, 'windows') }}
+        run: ./mvnw --batch-mode -U -e --no-transfer-progress clean install -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"rat.skip=false" -D"maven.javadoc.skip=true"
+      - 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 }}
+          restore-keys: |
+            ${{ runner.os }}-dubbo-
+      - name: "Restore Dubbo-spring-boot cache"
+        uses: actions/cache@v2
+        with:
+          path: ~/.m2/repository/org/apache/dubbo
+          key: ${{ runner.os }}-dubbo-spring-boot-snapshot-${{needs.build-dubbo-spring-boot.outputs.commit_id}}
+      - name: "Download test list"
+        uses: actions/download-artifact@v2
+        with:
+          name: test-list
+          path: test/jobs/
+      - name: "Download Dubbo version"
+        uses: actions/download-artifact@v2
+        with:
+          name: dubbo-version
+          path: dubbo-version
+      - name: "Set up JDK 8"
+        uses: actions/setup-java@v1
+        with:
+          java-version: 8
+      - name: "Init Candidate Versions"
+        run: |
+          DUBBO_VERSION=`cat dubbo-version/dubbo-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*
+
+  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