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