You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by ox...@apache.org on 2024/09/09 14:36:59 UTC
(dubbo) 01/01: Split unit test for all
This is an automated email from the ASF dual-hosted git repository.
oxsean pushed a commit to branch split-unit-test
in repository https://gitbox.apache.org/repos/asf/dubbo.git
commit ca13cda511b6ecc98eadd59afdd296cac2ee5b32
Author: Sean Yang <ox...@gmail.com>
AuthorDate: Sun Sep 8 15:15:37 2024 +0800
Split unit test for all
---
.github/workflows/build-and-test-pr.yml | 47 +-
.github/workflows/build-and-test-scheduled-3.1.yml | 572 +++++++++++----------
.github/workflows/build-and-test-scheduled-3.2.yml | 570 ++++++++++----------
.github/workflows/build-and-test-scheduled-3.3.yml | 561 ++++++++++----------
.github/workflows/release-test.yml | 555 ++++++++++----------
dubbo-test/scripts/split-modules.sh | 4 +-
mvnw | 2 +-
7 files changed, 1191 insertions(+), 1120 deletions(-)
diff --git a/.github/workflows/build-and-test-pr.yml b/.github/workflows/build-and-test-pr.yml
index 1ebb815797..62b7beec60 100644
--- a/.github/workflows/build-and-test-pr.yml
+++ b/.github/workflows/build-and-test-pr.yml
@@ -10,6 +10,7 @@ env:
FAIL_FAST: 0
SHOW_ERROR_DETAIL: 1
VERSIONS_LIMIT: 4
+ ALL_REMOTE_VERSION: true
JACOCO_ENABLE: true
CANDIDATE_VERSIONS: >-
spring.version:5.3.24;
@@ -88,7 +89,7 @@ jobs:
java-version: 21
- name: Compile Dubbo (Linux)
run: |
- ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -Pskip-spotless -Dmaven.test.skip=true -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true
+ ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -Pskip-spotless -Dmaven.test.skip=true
- name: Check Dependencies' License
uses: apache/skywalking-eyes/dependency@e1a02359b239bd28de3f6d35fdc870250fa513d5
env:
@@ -130,7 +131,7 @@ jobs:
- name: Build Dubbo with maven
run: |
cd ./dubbo
- ./mvnw ${{ env.MAVEN_ARGS }} clean install -Psources,'!demo',skip-spotless,checkstyle -Dmaven.test.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
+ ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -Psources,'!demo',skip-spotless,checkstyle -Dmaven.test.skip=true
- name: Save dubbo cache
uses: actions/cache/save@v4
with:
@@ -180,7 +181,7 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4
- name: Prepare test list
- run: bash ./dubbo-test/scripts/split-modules.sh 3 '${{ github.workspace }}'
+ run: bash ./dubbo-test/scripts/split-modules.sh ${{ env.JOB_COUNT }} '${{ github.workspace }}'
- name: Upload test list
uses: actions/upload-artifact@v3
with:
@@ -192,18 +193,24 @@ jobs:
with:
path: ${{ github.workspace }}/.tmp/zookeeper
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
- - name: Download zookeeper binary archive in Linux OS
+ - name: Download zookeeper binary archive on ${{ matrix.os }}
if: steps.cache-zookeeper.outputs.cache-hit != 'true'
+ env:
+ MIRRORS: >-
+ https://archive.apache.org/dist
+ https://apache.website-solution.net
+ http://apache.stu.edu.tw
+ http://ftp.jaist.ac.jp/pub/apache
+ http://apache.mirror.cdnetworks.com
+ http://mirror.apache-kr.org/apache
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
+ cd '${{ github.workspace }}'
+ mkdir -p .tmp/zookeeper
+ for mirror in $MIRRORS; do
+ curl -sL "$mirror/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz" -o .tmp/zookeeper/apache-zookeeper-bin.tar.gz && break
+ done
echo "list the downloaded zookeeper binary archive"
- ls -al ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
+ ls -al .tmp/zookeeper/apache-zookeeper-bin.tar.gz
- name: Save local zookeeper cache
uses: actions/cache/save@v4
if: steps.cache-zookeeper.outputs.cache-hit != 'true'
@@ -213,8 +220,8 @@ jobs:
unit-test-job:
name: Unit Test (Job-${{matrix.job_id}})
needs: [ check-format, build-source, unit-test-prepare ]
- runs-on: ubuntu-latest
- timeout-minutes: 30
+ runs-on: ${{ matrix.os }}-latest
+ timeout-minutes: 60
env:
ZOOKEEPER_VERSION: 3.6.4
strategy:
@@ -255,11 +262,11 @@ jobs:
name: unit-test-list
path: test/jobs/
- name: Test with maven
- timeout-minutes: 30
+ timeout-minutes: 60
run: |
set -o pipefail
modules=$(cat test/jobs/test_modules_${{ matrix.job_id }}.txt)
- ./mvnw ${{ env.MAVEN_ARGS }} clean test verify -Pjacoco,jdk15ge-simple,'!jdk15ge','!demo',skip-spotless,jacoco089 -pl "$modules" -DtrimStackTrace=false -Dmaven.test.skip=false -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false -Dflatten.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper 2>&1 | tee >(grep -n -B 1 -A 200 "FAILURE! -- in" > test_errors.log)
+ ./mvnw ${{ env.MAVEN_ARGS }} clean test verify -Pjdk15ge-simple,'!jdk15ge','!demo',skip-spotless,jacoco,jacoco089 -pl "$modules" -DtrimStackTrace=false -Dmaven.test.skip=false -Drat.skip=false -Dflatten.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper 2>&1 | tee >(grep -n -B 5 -A 200 "FAILURE! -- in" > test_errors.log)
- name: Print test error log
if: failure()
run: cat test_errors.log
@@ -292,7 +299,7 @@ jobs:
name: Samples Test (Job-${{matrix.job_id}})
needs: [ check-format, build-source, samples-test-prepare ]
runs-on: ubuntu-latest
- timeout-minutes: 30
+ timeout-minutes: 60
env:
JAVA_VER: 8
TEST_CASE_FILE: jobs/testjob_${{ matrix.job_id }}.txt
@@ -391,7 +398,7 @@ jobs:
name: Integration Test (Job-${{matrix.job_id}})
needs: [ check-format, build-source, integration-test-prepare ]
runs-on: ubuntu-latest
- timeout-minutes: 30
+ timeout-minutes: 60
env:
JAVA_VER: 8
TEST_CASE_FILE: jobs/testjob_${{ matrix.job_id }}.txt
@@ -557,7 +564,7 @@ jobs:
- name: Compile Dubbo (Linux)
run: |
cd ${{ github.workspace }}/dubbo
- ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -P '!demo',skip-spotless -Dmaven.test.skip=true -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true
+ ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -P '!demo',skip-spotless -Dmaven.test.skip=true
- name: Run Error Code Inspecting
env:
DUBBO_ECI_REPORT_AS_ERROR: true
@@ -608,7 +615,7 @@ jobs:
- name: Compile Dubbo (Linux)
run: |
cd ${{ github.workspace }}/dubbo
- ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -P '!demo',skip-spotless -Dmaven.test.skip=true -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true
+ ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -P '!demo',skip-spotless -Dmaven.test.skip=true
- name: Compile and run Dubbo demo for native (Linux)
run: |
cd ${{ github.workspace }}/dubbo/dubbo-demo/dubbo-demo-native/dubbo-demo-native-interface
diff --git a/.github/workflows/build-and-test-scheduled-3.1.yml b/.github/workflows/build-and-test-scheduled-3.1.yml
index 54a2abda85..7f842ced40 100644
--- a/.github/workflows/build-and-test-scheduled-3.1.yml
+++ b/.github/workflows/build-and-test-scheduled-3.1.yml
@@ -2,75 +2,116 @@ name: Build and Test Scheduled On 3.1
on:
schedule:
- - cron: '0 0/6 * * *'
+ - cron: 0 0/6 * * *
workflow_dispatch:
permissions:
contents: read
+defaults:
+ run:
+ shell: bash
+
env:
+ DUBBO_BRANCH: 3.1
FORK_COUNT: 2
FAIL_FAST: 0
SHOW_ERROR_DETAIL: 1
- #multi-version size limit
VERSIONS_LIMIT: 4
ALL_REMOTE_VERSION: true
- CANDIDATE_VERSIONS: '
+ JACOCO_ENABLE: false
+ CANDIDATE_VERSIONS: >-
spring.version:5.3.24;
spring-boot.version:2.7.6;
- '
+ MAVEN_OPTS: >-
+ -XX:+UseG1GC
+ -XX:InitiatingHeapOccupancyPercent=45
+ -XX:+UseStringDeduplication
+ -XX:-TieredCompilation
+ -XX:TieredStopAtLevel=1
+ -Dmaven.javadoc.skip=true
+ -Dmaven.wagon.http.retryHandler.count=5
+ -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
+ MAVEN_ARGS: >-
+ -e
+ --batch-mode
+ --no-snapshot-updates
+ --no-transfer-progress
+ --fail-fast
jobs:
- license:
+ check-license:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- ref: "3.1"
+ ref: ${{ env.DUBBO_BRANCH }}
- name: Check License
uses: apache/skywalking-eyes@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
build-source:
- runs-on: ubuntu-latest
+ name: Build Dubbo on ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}-latest
+ strategy:
+ matrix:
+ os: [ ubuntu, windows ]
outputs:
version: ${{ steps.dubbo-version.outputs.version }}
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- ref: "3.1"
+ ref: ${{ env.DUBBO_BRANCH }}
path: dubbo
- - uses: actions/setup-java@v3
+ - name: Set up JDK
+ uses: actions/setup-java@v4
with:
- distribution: 'zulu'
+ distribution: zulu
java-version: 8
- - uses: actions/cache@v3
- name: "Cache local Maven repository"
+ - name: Restore local maven repository cache
+ uses: actions/cache/restore@v4
+ id: cache-maven-repository
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
- restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- ${{ runner.os }}-maven-
- - name: "Dubbo cache"
- uses: actions/cache@v3
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - name: Restore common local maven repository cache
+ uses: actions/cache/restore@v4
+ if: steps.cache-maven-repository.outputs.cache-hit != 'true'
with:
- path: ~/.m2/repository/org/apache/dubbo
- key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
- - name: "Build Dubbo with Maven"
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-
+ - name: Clean dubbo cache
+ run: rm -rf ~/.m2/repository/org/apache/dubbo
+ - 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,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 checkstyle file if failure"
+ ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -Psources,'!demo',skip-spotless,checkstyle -Dmaven.test.skip=true -Dcheckstyle_unix.skip=${{ matrix.os == 'windows' && 'true' || 'false' }}
+ - name: Save dubbo cache
+ uses: actions/cache/save@v4
+ with:
+ path: ~/.m2/repository/org/apache/dubbo
+ key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
+ - name: Clean dubbo cache
+ run: rm -rf ~/.m2/repository/org/apache/dubbo
+ - name: Save local maven repository cache
+ uses: actions/cache/save@v4
+ if: steps.cache-maven-repository.outputs.cache-hit != 'true'
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - 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()
+ - name: Upload checkstyle file if failure
uses: actions/upload-artifact@v3
+ if: failure()
with:
- name: "checkstyle-file"
+ name: checkstyle-file
path: ${{ github.workspace }}/checkstyle.zip
- - name: "Calculate Dubbo Version"
+ - name: Calculate Dubbo Version
id: dubbo-version
run: |
REVISION=`awk '/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print $1;exit;}' ./dubbo/pom.xml`
@@ -78,425 +119,400 @@ jobs:
echo "dubbo version: $REVISION"
unit-test-prepare:
- name: " Preparation for Unit Test On ${{ matrix.os }}"
- runs-on: ${{ matrix.os }}
+ name: Preparation for Unit Test on ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}-latest
+ env:
+ JOB_COUNT: 2
+ ZOOKEEPER_VERSION: 3.6.4
strategy:
- fail-fast: false
matrix:
- os: [ ubuntu-latest, windows-latest ]
- env:
- ZOOKEEPER_VERSION: 3.6.3
+ os: [ ubuntu, windows ]
steps:
- - uses: actions/cache@v3
- name: "Cache zookeeper binary archive"
- id: "cache-zookeeper"
+ - name: Checkout code
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ env.DUBBO_BRANCH }}
+ - name: Prepare test list
+ if: ${{ matrix.os == 'ubuntu' }}
+ run: bash ./dubbo-test/scripts/split-modules.sh ${{ env.JOB_COUNT }} '${{ github.workspace }}'
+ - name: Upload test list
+ uses: actions/upload-artifact@v3
+ if: ${{ matrix.os == 'ubuntu' }}
+ with:
+ name: unit-test-list
+ path: test/jobs
+ - name: Restore local zookeeper cache
+ uses: actions/cache/restore@v4
+ 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}
+ - name: Download zookeeper binary archive on ${{ matrix.os }}
+ if: steps.cache-zookeeper.outputs.cache-hit != 'true'
+ env:
+ MIRRORS: >-
+ https://archive.apache.org/dist
+ https://apache.website-solution.net
+ http://apache.stu.edu.tw
+ http://ftp.jaist.ac.jp/pub/apache
+ http://apache.mirror.cdnetworks.com
+ http://mirror.apache-kr.org/apache
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
+ cd '${{ github.workspace }}'
+ mkdir -p .tmp/zookeeper
+ for mirror in $MIRRORS; do
+ curl -sL "$mirror/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz" -o .tmp/zookeeper/apache-zookeeper-bin.tar.gz && break
+ done
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-latest, windows-latest ]
- jdk: [ 8, 11, 17, 21 ]
- env:
- DISABLE_FILE_SYSTEM_TEST: true
- steps:
- - uses: actions/checkout@v3
- with:
- ref: "3.1"
- - name: "Set up JDK ${{ matrix.jdk }}"
- uses: actions/setup-java@v1
- with:
- java-version: ${{ matrix.jdk }}
- - uses: actions/cache@v3
- name: "Cache local Maven repository"
- with:
- path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
- restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- ${{ runner.os }}-maven-
- - uses: actions/cache@v3
- name: "Cache zookeeper binary archive"
- id: "cache-zookeeper"
+ ls -al .tmp/zookeeper/apache-zookeeper-bin.tar.gz
+ - name: Save local zookeeper cache
+ uses: actions/cache/save@v4
+ if: steps.cache-zookeeper.outputs.cache-hit != 'true'
with:
path: ${{ github.workspace }}/.tmp/zookeeper
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
- restore-keys: |
- zookeeper-${{ runner.os }}-
- - 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"
-
- 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-latest, windows-latest ]
- jdk: [ 8, 11, 17, 21 ]
+ unit-test-job:
+ name: Unit Test (Job-${{matrix.job_id}}, Os-${{ matrix.os }}, Jdk-${{ matrix.jdk }}, Ser-${{ matrix.ser }})
+ needs: [ build-source, unit-test-prepare ]
+ runs-on: ${{ matrix.os }}-latest
+ timeout-minutes: 60
env:
+ ZOOKEEPER_VERSION: 3.6.4
DISABLE_FILE_SYSTEM_TEST: true
- DUBBO_DEFAULT_SERIALIZATION: fastjson2
MAVEN_SUREFIRE_ADD_OPENS: true
+ DUBBO_DEFAULT_SERIALIZATION: ${{ matrix.ser }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [ ubuntu, windows ]
+ jdk: [ 8, 11 ]
+ ser: [ hessian2, fastjson2 ]
+ job_id: [ 1, 2 ]
steps:
- - uses: actions/checkout@v3
- - name: "Set up JDK ${{ matrix.jdk }}"
- uses: actions/setup-java@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ env.DUBBO_BRANCH }}
+ - name: Set up JDK
+ uses: actions/setup-java@v4
with:
- distribution: 'zulu'
+ distribution: zulu
java-version: ${{ matrix.jdk }}
- - uses: actions/cache@v3
- name: "Cache local Maven repository"
+ - name: Restore local maven repository
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- - uses: actions/cache@v3
- name: "Cache zookeeper binary archive"
- id: "cache-zookeeper"
+ - name: Restore Dubbo cache
+ uses: actions/cache/restore@v4
+ with:
+ path: ~/.m2/repository/org/apache/dubbo
+ key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
+ - name: Cache zookeeper binary archive
+ uses: actions/cache@v4
+ id: cache-zookeeper
with:
path: ${{ github.workspace }}/.tmp/zookeeper
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
restore-keys: |
zookeeper-${{ runner.os }}-
- - name: "Test with Maven with Integration Tests on JDK 8"
- timeout-minutes: 70
- if: ${{ startsWith( matrix.os, 'ubuntu') && matrix.jdk == '8' }}
- run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco,'!jdk15ge' -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 on JDK 8"
- timeout-minutes: 90
- if: ${{ startsWith( matrix.os, 'windows') && matrix.jdk == '8' }}
- run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -P"jacoco,'!jdk15ge'" -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: "Test with Maven with Integration Tests"
- timeout-minutes: 70
- if: ${{ startsWith( matrix.os, 'ubuntu') && matrix.jdk != '8' }}
- run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco,jdk15ge-simple,'!jdk15ge' -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') && matrix.jdk != '8' }}
- run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -P"jacoco,jdk15ge-simple,'!jdk15ge'" -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.workspa [...]
+ - name: Download test list
+ uses: actions/download-artifact@v3
+ with:
+ name: unit-test-list
+ path: test/jobs/
+ - name: Test with maven on ${{ matrix.os }}
+ timeout-minutes: 60
+ run: |
+ set -o pipefail
+ modules=$(cat test/jobs/test_modules_${{ matrix.job_id }}.txt)
+ ./mvnw ${{ env.MAVEN_ARGS }} clean test verify -Pjdk15ge-simple,'!jdk15ge','!demo',skip-spotless -pl "$modules" -DtrimStackTrace=false -Dmaven.test.skip=false -Drat.skip=false -Dflatten.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper 2>&1 | tee >(grep -n -B 5 -A 200 "FAILURE! -- in" > test_errors.log)
+ - name: Print test error log
+ if: failure()
+ run: cat test_errors.log
samples-test-prepare:
+ name: Preparation for Sample Test
runs-on: ubuntu-latest
env:
- JOB_COUNT: 5
+ JOB_COUNT: 3
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-samples'
+ repository: oxsean/dubbo-samples
ref: master
- - name: "Prepare test list"
- run: |
- bash ./test/scripts/prepare-test.sh
- - name: "Upload test list"
+ - name: Prepare test list
+ run: bash ./test/scripts/prepare-test.sh
+ - name: Upload test list
uses: actions/upload-artifact@v3
with:
name: samples-test-list
path: test/jobs
samples-test-job:
- needs: [build-source, samples-test-prepare]
- name: "Samples Test on ubuntu-latest (JobId: ${{matrix.job_id}} JavaVer: ${{matrix.jdk}})"
+ name: Samples Test (Job-${{matrix.job_id}}, Java-${{ matrix.jdk }})
+ needs: [ build-source, samples-test-prepare ]
runs-on: ubuntu-latest
- timeout-minutes: 90
+ timeout-minutes: 60
env:
- JAVA_VER: ${{matrix.jdk}}
- TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt
+ JAVA_VER: ${{ matrix.jdk }}
+ TEST_CASE_FILE: jobs/testjob_${{ matrix.job_id }}.txt
strategy:
fail-fast: false
matrix:
jdk: [ 8, 11 ]
- job_id: [1, 2, 3, 4, 5]
+ job_id: [ 1, 2, 3 ]
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-samples'
+ repository: oxsean/dubbo-samples
ref: master
- - name: "Cache local Maven repository"
- uses: actions/cache@v3
+ - name: Restore local maven repository cache
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- - name: "Restore Dubbo cache"
- uses: actions/cache@v3
+ - name: Restore Dubbo cache
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository/org/apache/dubbo
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
- restore-keys: |
- ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
- ${{ runner.os }}-dubbo-snapshot-
- - name: "Download test list"
+ - name: Download test list
uses: actions/download-artifact@v3
with:
name: samples-test-list
path: test/jobs/
- - name: "Set up JDK ${{matrix.jdk}}"
- uses: actions/setup-java@v1
+ - name: Set up JDK ${{ matrix.jdk }}
+ uses: actions/setup-java@v4
with:
- java-version: ${{matrix.jdk}}
- - name: "Init Candidate Versions"
+ distribution: zulu
+ java-version: ${{ matrix.jdk }}
+ - name: Init Candidate Versions
run: |
- DUBBO_VERSION="${{needs.build-source.outputs.version}}"
+ 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"
+ - 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()
+ - name: Upload test result
uses: actions/upload-artifact@v3
with:
- name: samples-test-result-${{matrix.jdk}}
+ name: samples-test-result-${{ matrix.jdk }}
path: test/jobs/*-result*
samples-test-result:
- needs: [samples-test-job]
- if: always()
+ needs: [ samples-test-job ]
runs-on: ubuntu-latest
env:
- JAVA_VER: ${{matrix.jdk}}
+ JAVA_VER: ${{ matrix.jdk }}
strategy:
matrix:
jdk: [ 8, 11 ]
steps:
- - uses: actions/checkout@v3
+ - name: Checkout samples code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-samples'
+ repository: oxsean/dubbo-samples
ref: master
- - name: "Download test result"
+ - name: Download test result
uses: actions/download-artifact@v3
with:
- name: samples-test-result-${{matrix.jdk}}
+ name: samples-test-result-${{ matrix.jdk }}
path: test/jobs/
- - name: "Merge test result"
+ - name: Merge test result
run: ./test/scripts/merge-test-results.sh
integration-test-prepare:
+ name: Preparation for Integration Test
runs-on: ubuntu-latest
env:
- JOB_COUNT: 5
+ JOB_COUNT: 3
steps:
- - uses: actions/checkout@v3
+ - name: Checkout integration code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-integration-cases'
+ repository: oxsean/dubbo-integration-cases
ref: main
- - name: "Prepare test list"
- run: |
- bash ./test/scripts/prepare-test.sh
- - name: "Upload test list"
+ - name: Prepare test list
+ run: bash ./test/scripts/prepare-test.sh
+ - name: Upload test list
uses: actions/upload-artifact@v3
with:
name: integration-test-list
path: test/jobs
integration-test-job:
- needs: [build-source, integration-test-prepare]
- name: "Integration Test on ubuntu-latest (JobId: ${{matrix.job_id}} JavaVer: ${{matrix.jdk}})"
+ name: Integration Test (Job-${{ matrix.job_id }}, Java-${{ matrix.jdk }})
+ needs: [ build-source, integration-test-prepare ]
runs-on: ubuntu-latest
- timeout-minutes: 90
+ timeout-minutes: 60
env:
- JAVA_VER: ${{matrix.jdk}}
- TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt
+ JAVA_VER: ${{ matrix.jdk }}
+ TEST_CASE_FILE: jobs/testjob_${{ matrix.job_id }}.txt
strategy:
fail-fast: false
matrix:
jdk: [ 8, 11 ]
- job_id: [1, 2, 3, 4, 5]
+ job_id: [ 1, 2, 3 ]
steps:
- - uses: actions/checkout@v3
+ - name: Checkout integration code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-integration-cases'
+ repository: oxsean/dubbo-integration-cases
ref: main
- - name: "Cache local Maven repository"
- uses: actions/cache@v3
+ - name: Restore local maven repository cache
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- - name: "Restore Dubbo cache"
- uses: actions/cache@v3
+ - name: Restore Dubbo cache
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository/org/apache/dubbo
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
- restore-keys: |
- ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
- ${{ runner.os }}-dubbo-snapshot-
- - name: "Download test list"
+ - name: Download test list
uses: actions/download-artifact@v3
with:
name: integration-test-list
path: test/jobs/
- - name: "Set up JDK ${{matrix.jdk}}"
- uses: actions/setup-java@v1
+ - name: Set up JDK ${{ matrix.jdk }}
+ uses: actions/setup-java@v4
with:
- java-version: ${{matrix.jdk}}
- - name: "Init Candidate Versions"
+ distribution: zulu
+ java-version: ${{ matrix.jdk }}
+ - name: Init Candidate Versions
run: |
- DUBBO_VERSION="${{needs.build-source.outputs.version}}"
+ 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"
+ - 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()
+ - name: Upload test result
uses: actions/upload-artifact@v3
with:
- name: integration-test-result-${{matrix.jdk}}
+ name: integration-test-result-${{ matrix.jdk }}
path: test/jobs/*-result*
integration-test-result:
- needs: [integration-test-job]
- if: always()
+ needs: [ integration-test-job ]
runs-on: ubuntu-latest
env:
- JAVA_VER: ${{matrix.jdk}}
+ JAVA_VER: ${{ matrix.jdk }}
strategy:
matrix:
jdk: [ 8, 11 ]
steps:
- - uses: actions/checkout@v3
+ - name: Checkout integration code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-integration-cases'
+ repository: oxsean/dubbo-integration-cases
ref: main
- - name: "Download test result"
+ - name: Download test result
uses: actions/download-artifact@v3
with:
- name: integration-test-result-${{matrix.jdk}}
+ name: integration-test-result-${{ matrix.jdk }}
path: test/jobs/
- - name: "Merge test result"
+ - name: Merge test result
run: ./test/scripts/merge-test-results.sh
error-code-inspecting:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- ref: "3.1"
- path: "./dubbo"
-
- - uses: actions/checkout@v3
+ ref: ${{ env.DUBBO_BRANCH }}
+ path: ./dubbo
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-test-tools'
+ repository: apache/dubbo-test-tools
ref: main
- path: "./dubbo-test-tools"
-
- - name: "Set up JDK 21"
- uses: actions/setup-java@v3
+ path: ./dubbo-test-tools
+ - name: Set up JDK 21
+ uses: actions/setup-java@v4
with:
- distribution: 'zulu'
+ distribution: zulu
java-version: 21
-
- - name: "Compile Dubbo (Linux)"
+ - name: Restore local maven repository cache
+ uses: actions/cache/restore@v4
+ id: cache-maven-repository
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ - name: Compile Dubbo (Linux)
run: |
cd ${{ github.workspace }}/dubbo
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean install -DskipTests=true -DskipIntegrationTests=true -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true -Dmaven.javadoc.skip=true
- - name: "Run Error Code Inspecting"
+ ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -P '!demo',skip-spotless -Dmaven.test.skip=true
+ - name: Run Error Code Inspecting
env:
DUBBO_ECI_REPORT_AS_ERROR: true
run: |
cd ${{ github.workspace }}/dubbo-test-tools/dubbo-error-code-inspector
- ../mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C package exec:java -Ddubbo.eci.report-as-error=${DUBBO_ECI_REPORT_AS_ERROR} -Dmaven.test.skip=true -Dmaven.test.skip.exec=true -Ddubbo.eci.path=${{ github.workspace }}/dubbo
-
- - name: "Upload error code inspection result"
+ ../mvnw ${{ env.MAVEN_ARGS }} -T 2C package exec:java -Ddubbo.eci.report-as-error=${DUBBO_ECI_REPORT_AS_ERROR} -Dmaven.test.skip=true -Ddubbo.eci.path=${{ github.workspace }}/dubbo
+ - name: Upload error code inspection result
# always() should not be used here, since we don't need to handle the 'canceled' situation.
if: ${{ success() || failure() }}
uses: actions/upload-artifact@v3
with:
- name: "error-inspection-result"
+ name: error-inspection-result
path: ${{ github.workspace }}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt
native-image-inspecting:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- ref: "3.1"
- path: "./dubbo"
-
- - name: "Setup GraalVM environment"
+ ref: ${{ env.DUBBO_BRANCH }}
+ path: ./dubbo
+ - name: Setup GraalVM environment
uses: graalvm/setup-graalvm@v1
with:
- version: '22.3.0'
- java-version: '17'
- components: 'native-image'
+ version: 22.3.0
+ java-version: 17
+ components: native-image
github-token: ${{ secrets.GITHUB_TOKEN }}
- native-image-job-reports: 'true'
-
- - name: "Setup Zookeeper environment"
+ native-image-job-reports: true
+ - name: Setup Zookeeper environment
run: |
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz
mv apache-zookeeper-3.8.4-bin/conf/zoo_sample.cfg apache-zookeeper-3.8.4-bin/conf/zoo.cfg
apache-zookeeper-3.8.4-bin/bin/zkServer.sh start
-
- - name: "Check environment"
+ - name: Check environment
run: |
java --version
native-image --version
-
- - name: "Compile Dubbo (Linux)"
+ - name: Restore local maven repository cache
+ uses: actions/cache/restore@v4
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ - name: Compile Dubbo (Linux)
run: |
cd ${{ github.workspace }}/dubbo
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean install -DskipTests=true -DskipIntegrationTests=true -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true -Dmaven.javadoc.skip=true
-
- - name: "Compile and run Dubbo demo for native (Linux)"
+ ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -P '!demo',skip-spotless -Dmaven.test.skip=true
+ - name: Compile and run Dubbo demo for native (Linux)
run: |
- cd ${{ github.workspace }}/dubbo/dubbo-demo/dubbo-demo-native/dubbo-demo-native-provider
- ${{ github.workspace }}/dubbo/mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean package -P native -Dmaven.test.skip=true native:compile
+ cd ${{ github.workspace }}/dubbo/dubbo-demo/dubbo-demo-native/dubbo-demo-native-interface
+ MVNW="${{ github.workspace }}/dubbo/mvnw ${{ env.MAVEN_ARGS }} -T 2C -Dmaven.test.skip=true"
+ $MVNW clean install
+ cd ../dubbo-demo-native-provider
+ $MVNW clean package -P native native:compile
nohup ./target/dubbo-demo-native-provider &
- cd ${{ github.workspace }}/dubbo/dubbo-demo/dubbo-demo-native/dubbo-demo-native-consumer
- ${{ github.workspace }}/dubbo/mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean package -P native -Dmaven.test.skip=true native:compile
+ cd ../dubbo-demo-native-consumer
+ $MVNW clean package -P native native:compile
./target/dubbo-demo-native-consumer
diff --git a/.github/workflows/build-and-test-scheduled-3.2.yml b/.github/workflows/build-and-test-scheduled-3.2.yml
index e3b3d95c8d..8d1c346d18 100644
--- a/.github/workflows/build-and-test-scheduled-3.2.yml
+++ b/.github/workflows/build-and-test-scheduled-3.2.yml
@@ -2,75 +2,116 @@ name: Build and Test Scheduled On 3.2
on:
schedule:
- - cron: '0 0/6 * * *'
+ - cron: 0 0/6 * * *
workflow_dispatch:
permissions:
contents: read
+defaults:
+ run:
+ shell: bash
+
env:
+ DUBBO_BRANCH: 3.2
FORK_COUNT: 2
FAIL_FAST: 0
SHOW_ERROR_DETAIL: 1
- #multi-version size limit
VERSIONS_LIMIT: 4
ALL_REMOTE_VERSION: true
- CANDIDATE_VERSIONS: '
+ JACOCO_ENABLE: false
+ CANDIDATE_VERSIONS: >-
spring.version:5.3.24;
spring-boot.version:2.7.6;
- '
+ MAVEN_OPTS: >-
+ -XX:+UseG1GC
+ -XX:InitiatingHeapOccupancyPercent=45
+ -XX:+UseStringDeduplication
+ -XX:-TieredCompilation
+ -XX:TieredStopAtLevel=1
+ -Dmaven.javadoc.skip=true
+ -Dmaven.wagon.http.retryHandler.count=5
+ -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
+ MAVEN_ARGS: >-
+ -e
+ --batch-mode
+ --no-snapshot-updates
+ --no-transfer-progress
+ --fail-fast
jobs:
- license:
+ check-license:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- ref: "3.2"
+ ref: ${{ env.DUBBO_BRANCH }}
- name: Check License
uses: apache/skywalking-eyes@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
build-source:
- runs-on: ubuntu-latest
+ name: Build Dubbo on ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}-latest
+ strategy:
+ matrix:
+ os: [ ubuntu, windows ]
outputs:
version: ${{ steps.dubbo-version.outputs.version }}
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- ref: "3.2"
+ ref: ${{ env.DUBBO_BRANCH }}
path: dubbo
- - uses: actions/setup-java@v3
+ - name: Set up JDK
+ uses: actions/setup-java@v4
with:
- distribution: 'zulu'
+ distribution: zulu
java-version: 8
- - uses: actions/cache@v3
- name: "Cache local Maven repository"
+ - name: Restore local maven repository cache
+ uses: actions/cache/restore@v4
+ id: cache-maven-repository
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
- restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- ${{ runner.os }}-maven-
- - name: "Dubbo cache"
- uses: actions/cache@v3
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - name: Restore common local maven repository cache
+ uses: actions/cache/restore@v4
+ if: steps.cache-maven-repository.outputs.cache-hit != 'true'
with:
- path: ~/.m2/repository/org/apache/dubbo
- key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
- - name: "Build Dubbo with Maven"
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-
+ - name: Clean dubbo cache
+ run: rm -rf ~/.m2/repository/org/apache/dubbo
+ - 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,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 checkstyle file if failure"
+ ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -Psources,'!demo',skip-spotless,checkstyle -Dmaven.test.skip=true -Dcheckstyle_unix.skip=${{ matrix.os == 'windows' && 'true' || 'false' }}
+ - name: Save dubbo cache
+ uses: actions/cache/save@v4
+ with:
+ path: ~/.m2/repository/org/apache/dubbo
+ key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
+ - name: Clean dubbo cache
+ run: rm -rf ~/.m2/repository/org/apache/dubbo
+ - name: Save local maven repository cache
+ uses: actions/cache/save@v4
+ if: steps.cache-maven-repository.outputs.cache-hit != 'true'
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - 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()
+ - name: Upload checkstyle file if failure
uses: actions/upload-artifact@v3
+ if: failure()
with:
- name: "checkstyle-file"
+ name: checkstyle-file
path: ${{ github.workspace }}/checkstyle.zip
- - name: "Calculate Dubbo Version"
+ - name: Calculate Dubbo Version
id: dubbo-version
run: |
REVISION=`awk '/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print $1;exit;}' ./dubbo/pom.xml`
@@ -78,425 +119,400 @@ jobs:
echo "dubbo version: $REVISION"
unit-test-prepare:
- name: " Preparation for Unit Test On ${{ matrix.os }}"
- runs-on: ${{ matrix.os }}
+ name: Preparation for Unit Test on ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}-latest
+ env:
+ JOB_COUNT: 2
+ ZOOKEEPER_VERSION: 3.6.4
strategy:
- fail-fast: false
matrix:
- os: [ ubuntu-latest, windows-latest ]
- env:
- ZOOKEEPER_VERSION: 3.6.3
+ os: [ ubuntu, windows ]
steps:
- - uses: actions/cache@v3
- name: "Cache zookeeper binary archive"
- id: "cache-zookeeper"
+ - name: Checkout code
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ env.DUBBO_BRANCH }}
+ - name: Prepare test list
+ if: ${{ matrix.os == 'ubuntu' }}
+ run: bash ./dubbo-test/scripts/split-modules.sh ${{ env.JOB_COUNT }} '${{ github.workspace }}'
+ - name: Upload test list
+ uses: actions/upload-artifact@v3
+ if: ${{ matrix.os == 'ubuntu' }}
+ with:
+ name: unit-test-list
+ path: test/jobs
+ - name: Restore local zookeeper cache
+ uses: actions/cache/restore@v4
+ 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}
+ - name: Download zookeeper binary archive on ${{ matrix.os }}
+ if: steps.cache-zookeeper.outputs.cache-hit != 'true'
+ env:
+ MIRRORS: >-
+ https://archive.apache.org/dist
+ https://apache.website-solution.net
+ http://apache.stu.edu.tw
+ http://ftp.jaist.ac.jp/pub/apache
+ http://apache.mirror.cdnetworks.com
+ http://mirror.apache-kr.org/apache
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
+ cd '${{ github.workspace }}'
+ mkdir -p .tmp/zookeeper
+ for mirror in $MIRRORS; do
+ curl -sL "$mirror/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz" -o .tmp/zookeeper/apache-zookeeper-bin.tar.gz && break
+ done
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-latest, windows-latest ]
- jdk: [ 8, 11, 17, 21 ]
- env:
- DISABLE_FILE_SYSTEM_TEST: true
- steps:
- - uses: actions/checkout@v3
- with:
- ref: "3.2"
- - name: "Set up JDK ${{ matrix.jdk }}"
- uses: actions/setup-java@v1
- with:
- java-version: ${{ matrix.jdk }}
- - uses: actions/cache@v3
- name: "Cache local Maven repository"
- with:
- path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
- restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- ${{ runner.os }}-maven-
- - uses: actions/cache@v3
- name: "Cache zookeeper binary archive"
- id: "cache-zookeeper"
+ ls -al .tmp/zookeeper/apache-zookeeper-bin.tar.gz
+ - name: Save local zookeeper cache
+ uses: actions/cache/save@v4
+ if: steps.cache-zookeeper.outputs.cache-hit != 'true'
with:
path: ${{ github.workspace }}/.tmp/zookeeper
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
- restore-keys: |
- zookeeper-${{ runner.os }}-
- - 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"
-
- unit-test-fastjson2:
- needs: [build-source, unit-test-prepare]
- name: "Unit Test On ${{ matrix.os }} (JDK: ${{ matrix.jdk }}, Serialization: fastjson2)"
- runs-on: ${{ matrix.os }}
+ unit-test-job:
+ name: Unit Test (Job-${{matrix.job_id}}, Os-${{ matrix.os }}, Jdk-${{ matrix.jdk }}, Ser-${{ matrix.ser }})
+ needs: [ build-source, unit-test-prepare ]
+ runs-on: ${{ matrix.os }}-latest
+ timeout-minutes: 60
+ env:
+ ZOOKEEPER_VERSION: 3.6.4
+ DISABLE_FILE_SYSTEM_TEST: true
+ MAVEN_SUREFIRE_ADD_OPENS: true
+ DUBBO_DEFAULT_SERIALIZATION: ${{ matrix.ser }}
strategy:
fail-fast: false
matrix:
- os: [ ubuntu-latest, windows-latest ]
+ os: [ ubuntu, windows ]
jdk: [ 8, 11, 17, 21 ]
- env:
- DISABLE_FILE_SYSTEM_TEST: true
- DUBBO_DEFAULT_SERIALIZATION: fastjson2
- MAVEN_SUREFIRE_ADD_OPENS: true
+ ser: [ hessian2, fastjson2 ]
+ job_id: [ 1, 2 ]
steps:
- - uses: actions/checkout@v3
- - name: "Set up JDK ${{ matrix.jdk }}"
- uses: actions/setup-java@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ env.DUBBO_BRANCH }}
+ - name: Set up JDK
+ uses: actions/setup-java@v4
with:
- distribution: 'zulu'
+ distribution: zulu
java-version: ${{ matrix.jdk }}
- - uses: actions/cache@v3
- name: "Cache local Maven repository"
+ - name: Restore local maven repository
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- - uses: actions/cache@v3
- name: "Cache zookeeper binary archive"
- id: "cache-zookeeper"
+ - name: Restore Dubbo cache
+ uses: actions/cache/restore@v4
+ with:
+ path: ~/.m2/repository/org/apache/dubbo
+ key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
+ - name: Cache zookeeper binary archive
+ uses: actions/cache@v4
+ id: cache-zookeeper
with:
path: ${{ github.workspace }}/.tmp/zookeeper
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
restore-keys: |
zookeeper-${{ runner.os }}-
- - name: "Test with Maven with Integration Tests on JDK 8"
- timeout-minutes: 70
- if: ${{ startsWith( matrix.os, 'ubuntu') && matrix.jdk == '8' }}
- run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco,'!jdk15ge' -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 on JDK 8"
- timeout-minutes: 90
- if: ${{ startsWith( matrix.os, 'windows') && matrix.jdk == '8' }}
- run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -P"jacoco,'!jdk15ge'" -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: "Test with Maven with Integration Tests"
- timeout-minutes: 70
- if: ${{ startsWith( matrix.os, 'ubuntu') && matrix.jdk != '8' }}
- run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco,jdk15ge-simple,'!jdk15ge' -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') && matrix.jdk != '8' }}
- run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -P"jacoco,jdk15ge-simple,'!jdk15ge'" -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.workspa [...]
+ - name: Download test list
+ uses: actions/download-artifact@v3
+ with:
+ name: unit-test-list
+ path: test/jobs/
+ - name: Test with maven on ${{ matrix.os }}
+ timeout-minutes: 60
+ run: |
+ set -o pipefail
+ modules=$(cat test/jobs/test_modules_${{ matrix.job_id }}.txt)
+ ./mvnw ${{ env.MAVEN_ARGS }} clean test verify -Pjdk15ge-simple,'!jdk15ge','!demo',skip-spotless -pl "$modules" -DtrimStackTrace=false -Dmaven.test.skip=false -Drat.skip=false -Dflatten.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper 2>&1 | tee >(grep -n -B 5 -A 200 "FAILURE! -- in" > test_errors.log)
+ - name: Print test error log
+ if: failure()
+ run: cat test_errors.log
samples-test-prepare:
+ name: Preparation for Sample Test
runs-on: ubuntu-latest
env:
- JOB_COUNT: 5
+ JOB_COUNT: 3
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-samples'
+ repository: oxsean/dubbo-samples
ref: master
- - name: "Prepare test list"
- run: |
- bash ./test/scripts/prepare-test.sh
- - name: "Upload test list"
+ - name: Prepare test list
+ run: bash ./test/scripts/prepare-test.sh
+ - name: Upload test list
uses: actions/upload-artifact@v3
with:
name: samples-test-list
path: test/jobs
samples-test-job:
- needs: [build-source, samples-test-prepare]
- name: "Samples Test on ubuntu-latest (JobId: ${{matrix.job_id}} JavaVer: ${{matrix.jdk}})"
+ name: Samples Test (Job-${{matrix.job_id}}, Java-${{ matrix.jdk }})
+ needs: [ build-source, samples-test-prepare ]
runs-on: ubuntu-latest
- timeout-minutes: 90
+ timeout-minutes: 60
env:
- JAVA_VER: ${{matrix.jdk}}
- TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt
+ JAVA_VER: ${{ matrix.jdk }}
+ TEST_CASE_FILE: jobs/testjob_${{ matrix.job_id }}.txt
strategy:
fail-fast: false
matrix:
jdk: [ 8, 11, 17, 21 ]
- job_id: [1, 2, 3, 4, 5]
+ job_id: [ 1, 2, 3 ]
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-samples'
+ repository: oxsean/dubbo-samples
ref: master
- - name: "Cache local Maven repository"
- uses: actions/cache@v3
+ - name: Restore local maven repository cache
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- - name: "Restore Dubbo cache"
- uses: actions/cache@v3
+ - name: Restore Dubbo cache
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository/org/apache/dubbo
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
- restore-keys: |
- ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
- ${{ runner.os }}-dubbo-snapshot-
- - name: "Download test list"
+ - name: Download test list
uses: actions/download-artifact@v3
with:
name: samples-test-list
path: test/jobs/
- - name: "Set up JDK ${{matrix.jdk}}"
- uses: actions/setup-java@v1
+ - name: Set up JDK ${{ matrix.jdk }}
+ uses: actions/setup-java@v4
with:
- java-version: ${{matrix.jdk}}
- - name: "Init Candidate Versions"
+ distribution: zulu
+ java-version: ${{ matrix.jdk }}
+ - name: Init Candidate Versions
run: |
- DUBBO_VERSION="${{needs.build-source.outputs.version}}"
+ 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"
+ - 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()
+ - name: Upload test result
uses: actions/upload-artifact@v3
with:
- name: samples-test-result-${{matrix.jdk}}
+ name: samples-test-result-${{ matrix.jdk }}
path: test/jobs/*-result*
samples-test-result:
- needs: [samples-test-job]
- if: always()
+ needs: [ samples-test-job ]
runs-on: ubuntu-latest
env:
- JAVA_VER: ${{matrix.jdk}}
+ JAVA_VER: ${{ matrix.jdk }}
strategy:
matrix:
jdk: [ 8, 11, 17, 21 ]
steps:
- - uses: actions/checkout@v3
+ - name: Checkout samples code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-samples'
+ repository: oxsean/dubbo-samples
ref: master
- - name: "Download test result"
+ - name: Download test result
uses: actions/download-artifact@v3
with:
- name: samples-test-result-${{matrix.jdk}}
+ name: samples-test-result-${{ matrix.jdk }}
path: test/jobs/
- - name: "Merge test result"
+ - name: Merge test result
run: ./test/scripts/merge-test-results.sh
integration-test-prepare:
+ name: Preparation for Integration Test
runs-on: ubuntu-latest
env:
- JOB_COUNT: 5
+ JOB_COUNT: 3
steps:
- - uses: actions/checkout@v3
+ - name: Checkout integration code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-integration-cases'
+ repository: oxsean/dubbo-integration-cases
ref: main
- - name: "Prepare test list"
- run: |
- bash ./test/scripts/prepare-test.sh
- - name: "Upload test list"
+ - name: Prepare test list
+ run: bash ./test/scripts/prepare-test.sh
+ - name: Upload test list
uses: actions/upload-artifact@v3
with:
name: integration-test-list
path: test/jobs
integration-test-job:
- needs: [build-source, integration-test-prepare]
- name: "Integration Test on ubuntu-latest (JobId: ${{matrix.job_id}} JavaVer: ${{matrix.jdk}})"
+ name: Integration Test (Job-${{ matrix.job_id }}, Java-${{ matrix.jdk }})
+ needs: [ build-source, integration-test-prepare ]
runs-on: ubuntu-latest
- timeout-minutes: 90
+ timeout-minutes: 60
env:
- JAVA_VER: ${{matrix.jdk}}
- TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt
+ JAVA_VER: ${{ matrix.jdk }}
+ TEST_CASE_FILE: jobs/testjob_${{ matrix.job_id }}.txt
strategy:
fail-fast: false
matrix:
jdk: [ 8, 11, 17, 21 ]
- job_id: [1, 2, 3, 4, 5]
+ job_id: [ 1, 2, 3 ]
steps:
- - uses: actions/checkout@v3
+ - name: Checkout integration code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-integration-cases'
+ repository: oxsean/dubbo-integration-cases
ref: main
- - name: "Cache local Maven repository"
- uses: actions/cache@v3
+ - name: Restore local maven repository cache
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- - name: "Restore Dubbo cache"
- uses: actions/cache@v3
+ - name: Restore Dubbo cache
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository/org/apache/dubbo
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
- restore-keys: |
- ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
- ${{ runner.os }}-dubbo-snapshot-
- - name: "Download test list"
+ - name: Download test list
uses: actions/download-artifact@v3
with:
name: integration-test-list
path: test/jobs/
- - name: "Set up JDK ${{matrix.jdk}}"
- uses: actions/setup-java@v1
+ - name: Set up JDK ${{ matrix.jdk }}
+ uses: actions/setup-java@v4
with:
- java-version: ${{matrix.jdk}}
- - name: "Init Candidate Versions"
+ distribution: zulu
+ java-version: ${{ matrix.jdk }}
+ - name: Init Candidate Versions
run: |
- DUBBO_VERSION="${{needs.build-source.outputs.version}}"
+ 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"
+ - 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()
+ - name: Upload test result
uses: actions/upload-artifact@v3
with:
- name: integration-test-result-${{matrix.jdk}}
+ name: integration-test-result-${{ matrix.jdk }}
path: test/jobs/*-result*
integration-test-result:
- needs: [integration-test-job]
- if: always()
+ needs: [ integration-test-job ]
runs-on: ubuntu-latest
env:
- JAVA_VER: ${{matrix.jdk}}
+ JAVA_VER: ${{ matrix.jdk }}
strategy:
matrix:
jdk: [ 8, 11, 17, 21 ]
steps:
- - uses: actions/checkout@v3
+ - name: Checkout integration code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-integration-cases'
+ repository: oxsean/dubbo-integration-cases
ref: main
- - name: "Download test result"
+ - name: Download test result
uses: actions/download-artifact@v3
with:
- name: integration-test-result-${{matrix.jdk}}
+ name: integration-test-result-${{ matrix.jdk }}
path: test/jobs/
- - name: "Merge test result"
+ - name: Merge test result
run: ./test/scripts/merge-test-results.sh
error-code-inspecting:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- ref: "3.2"
- path: "./dubbo"
-
- - uses: actions/checkout@v3
+ ref: ${{ env.DUBBO_BRANCH }}
+ path: ./dubbo
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-test-tools'
+ repository: apache/dubbo-test-tools
ref: main
- path: "./dubbo-test-tools"
-
- - name: "Set up JDK 21"
- uses: actions/setup-java@v3
+ path: ./dubbo-test-tools
+ - name: Set up JDK 21
+ uses: actions/setup-java@v4
with:
- distribution: 'zulu'
+ distribution: zulu
java-version: 21
-
- - name: "Compile Dubbo (Linux)"
+ - name: Restore local maven repository cache
+ uses: actions/cache/restore@v4
+ id: cache-maven-repository
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ - name: Compile Dubbo (Linux)
run: |
cd ${{ github.workspace }}/dubbo
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean install -DskipTests=true -DskipIntegrationTests=true -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true -Dmaven.javadoc.skip=true
- - name: "Run Error Code Inspecting"
+ ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -P '!demo',skip-spotless -Dmaven.test.skip=true
+ - name: Run Error Code Inspecting
env:
DUBBO_ECI_REPORT_AS_ERROR: true
run: |
cd ${{ github.workspace }}/dubbo-test-tools/dubbo-error-code-inspector
- ../mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C package exec:java -Ddubbo.eci.report-as-error=${DUBBO_ECI_REPORT_AS_ERROR} -Dmaven.test.skip=true -Dmaven.test.skip.exec=true -Ddubbo.eci.path=${{ github.workspace }}/dubbo
-
- - name: "Upload error code inspection result"
+ ../mvnw ${{ env.MAVEN_ARGS }} -T 2C package exec:java -Ddubbo.eci.report-as-error=${DUBBO_ECI_REPORT_AS_ERROR} -Dmaven.test.skip=true -Ddubbo.eci.path=${{ github.workspace }}/dubbo
+ - name: Upload error code inspection result
# always() should not be used here, since we don't need to handle the 'canceled' situation.
if: ${{ success() || failure() }}
uses: actions/upload-artifact@v3
with:
- name: "error-inspection-result"
+ name: error-inspection-result
path: ${{ github.workspace }}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt
native-image-inspecting:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- ref: "3.2"
- path: "./dubbo"
-
- - name: "Setup GraalVM environment"
+ ref: ${{ env.DUBBO_BRANCH }}
+ path: ./dubbo
+ - name: Setup GraalVM environment
uses: graalvm/setup-graalvm@v1
with:
- version: '22.3.0'
- java-version: '17'
- components: 'native-image'
+ version: 22.3.0
+ java-version: 17
+ components: native-image
github-token: ${{ secrets.GITHUB_TOKEN }}
- native-image-job-reports: 'true'
-
- - name: "Setup Zookeeper environment"
+ native-image-job-reports: true
+ - name: Setup Zookeeper environment
run: |
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz
mv apache-zookeeper-3.8.4-bin/conf/zoo_sample.cfg apache-zookeeper-3.8.4-bin/conf/zoo.cfg
apache-zookeeper-3.8.4-bin/bin/zkServer.sh start
-
- - name: "Check environment"
+ - name: Check environment
run: |
java --version
native-image --version
-
- - name: "Compile Dubbo (Linux)"
+ - name: Restore local maven repository cache
+ uses: actions/cache/restore@v4
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ - name: Compile Dubbo (Linux)
run: |
cd ${{ github.workspace }}/dubbo
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean install -DskipTests=true -DskipIntegrationTests=true -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true -Dmaven.javadoc.skip=true
-
- - name: "Compile and run Dubbo demo for native (Linux)"
+ ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -P '!demo',skip-spotless -Dmaven.test.skip=true
+ - name: Compile and run Dubbo demo for native (Linux)
run: |
- cd ${{ github.workspace }}/dubbo/dubbo-demo/dubbo-demo-native/dubbo-demo-native-provider
- ${{ github.workspace }}/dubbo/mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean package -P native -Dmaven.test.skip=true native:compile
+ cd ${{ github.workspace }}/dubbo/dubbo-demo/dubbo-demo-native/dubbo-demo-native-interface
+ MVNW="${{ github.workspace }}/dubbo/mvnw ${{ env.MAVEN_ARGS }} -T 2C -Dmaven.test.skip=true"
+ $MVNW clean install
+ cd ../dubbo-demo-native-provider
+ $MVNW clean package -P native native:compile
nohup ./target/dubbo-demo-native-provider &
- cd ${{ github.workspace }}/dubbo/dubbo-demo/dubbo-demo-native/dubbo-demo-native-consumer
- ${{ github.workspace }}/dubbo/mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean package -P native -Dmaven.test.skip=true native:compile
+ cd ../dubbo-demo-native-consumer
+ $MVNW clean package -P native native:compile
./target/dubbo-demo-native-consumer
diff --git a/.github/workflows/build-and-test-scheduled-3.3.yml b/.github/workflows/build-and-test-scheduled-3.3.yml
index 3240efb8f8..aca04d2402 100644
--- a/.github/workflows/build-and-test-scheduled-3.3.yml
+++ b/.github/workflows/build-and-test-scheduled-3.3.yml
@@ -2,75 +2,116 @@ name: Build and Test Scheduled On 3.3
on:
schedule:
- - cron: '0 0/6 * * *'
+ - cron: 0 0/6 * * *
workflow_dispatch:
permissions:
contents: read
+defaults:
+ run:
+ shell: bash
+
env:
+ DUBBO_BRANCH: split-unit-test
FORK_COUNT: 2
FAIL_FAST: 0
SHOW_ERROR_DETAIL: 1
- #multi-version size limit
VERSIONS_LIMIT: 4
ALL_REMOTE_VERSION: true
- CANDIDATE_VERSIONS: '
+ JACOCO_ENABLE: false
+ CANDIDATE_VERSIONS: >-
spring.version:5.3.24;
spring-boot.version:2.7.6;
- '
+ MAVEN_OPTS: >-
+ -XX:+UseG1GC
+ -XX:InitiatingHeapOccupancyPercent=45
+ -XX:+UseStringDeduplication
+ -XX:-TieredCompilation
+ -XX:TieredStopAtLevel=1
+ -Dmaven.javadoc.skip=true
+ -Dmaven.wagon.http.retryHandler.count=5
+ -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
+ MAVEN_ARGS: >-
+ -e
+ --batch-mode
+ --no-snapshot-updates
+ --no-transfer-progress
+ --fail-fast
jobs:
- license:
+ check-license:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- ref: "3.3"
+ ref: ${{ env.DUBBO_BRANCH }}
- name: Check License
uses: apache/skywalking-eyes@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
build-source:
- runs-on: ubuntu-latest
+ name: Build Dubbo on ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}-latest
+ strategy:
+ matrix:
+ os: [ ubuntu, windows ]
outputs:
version: ${{ steps.dubbo-version.outputs.version }}
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- ref: "3.3"
+ ref: ${{ env.DUBBO_BRANCH }}
path: dubbo
- - uses: actions/setup-java@v3
+ - name: Set up JDK
+ uses: actions/setup-java@v4
with:
- distribution: 'zulu'
+ distribution: zulu
java-version: 21
- - uses: actions/cache@v3
- name: "Cache local Maven repository"
+ - name: Restore local maven repository cache
+ uses: actions/cache/restore@v4
+ id: cache-maven-repository
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
- restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- ${{ runner.os }}-maven-
- - name: "Dubbo cache"
- uses: actions/cache@v3
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - name: Restore common local maven repository cache
+ uses: actions/cache/restore@v4
+ if: steps.cache-maven-repository.outputs.cache-hit != 'true'
with:
- path: ~/.m2/repository/org/apache/dubbo
- key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
- - name: "Build Dubbo with Maven"
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-
+ - name: Clean dubbo cache
+ run: rm -rf ~/.m2/repository/org/apache/dubbo
+ - 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,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 checkstyle file if failure"
+ ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -Psources,'!demo',skip-spotless,checkstyle -Dmaven.test.skip=true -Dcheckstyle_unix.skip=${{ matrix.os == 'windows' && 'true' || 'false' }}
+ - name: Save dubbo cache
+ uses: actions/cache/save@v4
+ with:
+ path: ~/.m2/repository/org/apache/dubbo
+ key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
+ - name: Clean dubbo cache
+ run: rm -rf ~/.m2/repository/org/apache/dubbo
+ - name: Save local maven repository cache
+ uses: actions/cache/save@v4
+ if: steps.cache-maven-repository.outputs.cache-hit != 'true'
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - 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()
+ - name: Upload checkstyle file if failure
uses: actions/upload-artifact@v3
+ if: failure()
with:
- name: "checkstyle-file"
+ name: checkstyle-file
path: ${{ github.workspace }}/checkstyle.zip
- - name: "Calculate Dubbo Version"
+ - name: Calculate Dubbo Version
id: dubbo-version
run: |
REVISION=`awk '/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print $1;exit;}' ./dubbo/pom.xml`
@@ -78,427 +119,399 @@ jobs:
echo "dubbo version: $REVISION"
unit-test-prepare:
- name: " Preparation for Unit Test On ${{ matrix.os }}"
- runs-on: ${{ matrix.os }}
+ name: Preparation for Unit Test on ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}-latest
+ env:
+ JOB_COUNT: 2
+ ZOOKEEPER_VERSION: 3.6.4
strategy:
- fail-fast: false
matrix:
- os: [ ubuntu-latest, windows-latest ]
- env:
- ZOOKEEPER_VERSION: 3.6.3
+ os: [ ubuntu, windows ]
steps:
- - uses: actions/cache@v3
- name: "Cache zookeeper binary archive"
- id: "cache-zookeeper"
+ - name: Checkout code
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ env.DUBBO_BRANCH }}
+ - name: Prepare test list
+ if: ${{ matrix.os == 'ubuntu' }}
+ run: bash ./dubbo-test/scripts/split-modules.sh ${{ env.JOB_COUNT }} '${{ github.workspace }}'
+ - name: Upload test list
+ uses: actions/upload-artifact@v3
+ if: ${{ matrix.os == 'ubuntu' }}
+ with:
+ name: unit-test-list
+ path: test/jobs
+ - name: Restore local zookeeper cache
+ uses: actions/cache/restore@v4
+ 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}
+ - name: Download zookeeper binary archive on ${{ matrix.os }}
+ if: steps.cache-zookeeper.outputs.cache-hit != 'true'
+ env:
+ MIRRORS: >-
+ https://archive.apache.org/dist
+ https://apache.website-solution.net
+ http://apache.stu.edu.tw
+ http://ftp.jaist.ac.jp/pub/apache
+ http://apache.mirror.cdnetworks.com
+ http://mirror.apache-kr.org/apache
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
+ cd '${{ github.workspace }}'
+ mkdir -p .tmp/zookeeper
+ for mirror in $MIRRORS; do
+ curl -sL "$mirror/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz" -o .tmp/zookeeper/apache-zookeeper-bin.tar.gz && break
+ done
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-latest, windows-latest ]
- jdk: [ 8, 11, 17, 21 ]
- env:
- DISABLE_FILE_SYSTEM_TEST: true
- steps:
- - uses: actions/checkout@v3
- with:
- ref: "3.3"
- - name: "Set up JDK ${{ matrix.jdk }}"
- uses: actions/setup-java@v1
- with:
- java-version: ${{ matrix.jdk }}
- - uses: actions/cache@v3
- name: "Cache local Maven repository"
- with:
- path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
- restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- ${{ runner.os }}-maven-
- - uses: actions/cache@v3
- name: "Cache zookeeper binary archive"
- id: "cache-zookeeper"
+ ls -al .tmp/zookeeper/apache-zookeeper-bin.tar.gz
+ - name: Save local zookeeper cache
+ uses: actions/cache/save@v4
+ if: steps.cache-zookeeper.outputs.cache-hit != 'true'
with:
path: ${{ github.workspace }}/.tmp/zookeeper
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
- restore-keys: |
- zookeeper-${{ runner.os }}-
- - 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"
-
- unit-test-fastjson2:
- needs: [build-source, unit-test-prepare]
- name: "Unit Test On ${{ matrix.os }} (JDK: ${{ matrix.jdk }}, Serialization: fastjson2)"
- runs-on: ${{ matrix.os }}
+ unit-test-job:
+ name: Unit Test (Job-${{matrix.job_id}}, Os-${{ matrix.os }}, Jdk-${{ matrix.jdk }}, Ser-${{ matrix.ser }})
+ needs: [ build-source, unit-test-prepare ]
+ runs-on: ${{ matrix.os }}-latest
+ timeout-minutes: 60
+ env:
+ ZOOKEEPER_VERSION: 3.6.4
+ DISABLE_FILE_SYSTEM_TEST: true
+ MAVEN_SUREFIRE_ADD_OPENS: true
+ DUBBO_DEFAULT_SERIALIZATION: ${{ matrix.ser }}
strategy:
fail-fast: false
matrix:
- os: [ ubuntu-latest, windows-latest ]
+ os: [ ubuntu, windows ]
jdk: [ 8, 11, 17, 21 ]
- env:
- DISABLE_FILE_SYSTEM_TEST: true
- DUBBO_DEFAULT_SERIALIZATION: fastjson2
- MAVEN_SUREFIRE_ADD_OPENS: true
+ ser: [ hessian2, fastjson2 ]
+ job_id: [ 1, 2 ]
steps:
- - uses: actions/checkout@v3
- - name: "Set up JDK ${{ matrix.jdk }}"
- uses: actions/setup-java@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ env.DUBBO_BRANCH }}
+ - name: Set up JDK
+ uses: actions/setup-java@v4
with:
- distribution: 'zulu'
+ distribution: zulu
java-version: ${{ matrix.jdk }}
- - uses: actions/cache@v3
- name: "Cache local Maven repository"
+ - name: Restore local maven repository
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- - uses: actions/cache@v3
- name: "Cache zookeeper binary archive"
- id: "cache-zookeeper"
+ - name: Restore Dubbo cache
+ uses: actions/cache/restore@v4
+ with:
+ path: ~/.m2/repository/org/apache/dubbo
+ key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
+ - name: Cache zookeeper binary archive
+ uses: actions/cache@v4
+ id: cache-zookeeper
with:
path: ${{ github.workspace }}/.tmp/zookeeper
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
restore-keys: |
zookeeper-${{ runner.os }}-
- - name: "Test with Maven with Integration Tests on JDK 8"
- timeout-minutes: 70
- if: ${{ startsWith( matrix.os, 'ubuntu') && matrix.jdk == '8' }}
- run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco,'!jdk15ge' -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 on JDK 8"
- timeout-minutes: 90
- if: ${{ startsWith( matrix.os, 'windows') && matrix.jdk == '8' }}
- run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -P"jacoco,'!jdk15ge'" -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: "Test with Maven with Integration Tests"
- timeout-minutes: 70
- if: ${{ startsWith( matrix.os, 'ubuntu') && matrix.jdk != '8' }}
- run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco,jdk15ge-simple,'!jdk15ge' -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') && matrix.jdk != '8' }}
- run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -P"jacoco,jdk15ge-simple,'!jdk15ge'" -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.workspa [...]
+ - name: Download test list
+ uses: actions/download-artifact@v3
+ with:
+ name: unit-test-list
+ path: test/jobs/
+ - name: Test with maven on ${{ matrix.os }}
+ timeout-minutes: 60
+ run: |
+ set -o pipefail
+ modules=$(cat test/jobs/test_modules_${{ matrix.job_id }}.txt)
+ ./mvnw ${{ env.MAVEN_ARGS }} clean test verify -Pjdk15ge-simple,'!jdk15ge','!demo',skip-spotless -pl "$modules" -DtrimStackTrace=false -Dmaven.test.skip=false -Drat.skip=false -Dflatten.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper 2>&1 | tee >(grep -n -B 5 -A 200 "FAILURE! -- in" > test_errors.log)
+ - name: Print test error log
+ if: failure()
+ run: cat test_errors.log
samples-test-prepare:
+ name: Preparation for Sample Test
runs-on: ubuntu-latest
env:
- JOB_COUNT: 5
+ JOB_COUNT: 3
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-samples'
+ repository: oxsean/dubbo-samples
ref: master
- - name: "Prepare test list"
- run: |
- bash ./test/scripts/prepare-test.sh
- - name: "Upload test list"
+ - name: Prepare test list
+ run: bash ./test/scripts/prepare-test.sh
+ - name: Upload test list
uses: actions/upload-artifact@v3
with:
name: samples-test-list
path: test/jobs
samples-test-job:
- needs: [build-source, samples-test-prepare]
- name: "Samples Test on ubuntu-latest (JobId: ${{matrix.job_id}} JavaVer: ${{matrix.jdk}})"
+ name: Samples Test (Job-${{matrix.job_id}}, Java-${{ matrix.jdk }})
+ needs: [ build-source, samples-test-prepare ]
runs-on: ubuntu-latest
- timeout-minutes: 90
+ timeout-minutes: 60
env:
- JAVA_VER: ${{matrix.jdk}}
- TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt
+ JAVA_VER: ${{ matrix.jdk }}
+ TEST_CASE_FILE: jobs/testjob_${{ matrix.job_id }}.txt
strategy:
fail-fast: false
matrix:
jdk: [ 8, 11, 17, 21 ]
- job_id: [1, 2, 3, 4, 5]
+ job_id: [ 1, 2, 3 ]
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-samples'
+ repository: oxsean/dubbo-samples
ref: master
- - name: "Cache local Maven repository"
- uses: actions/cache@v3
+ - name: Restore local maven repository cache
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- - name: "Restore Dubbo cache"
- uses: actions/cache@v3
+ - name: Restore Dubbo cache
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository/org/apache/dubbo
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
- restore-keys: |
- ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
- ${{ runner.os }}-dubbo-snapshot-
- - name: "Download test list"
+ - name: Download test list
uses: actions/download-artifact@v3
with:
name: samples-test-list
path: test/jobs/
- - name: "Set up JDK ${{matrix.jdk}}"
- uses: actions/setup-java@v1
+ - name: Set up JDK ${{ matrix.jdk }}
+ uses: actions/setup-java@v4
with:
- java-version: ${{matrix.jdk}}
- - name: "Init Candidate Versions"
+ distribution: zulu
+ java-version: ${{ matrix.jdk }}
+ - name: Init Candidate Versions
run: |
- DUBBO_VERSION="${{needs.build-source.outputs.version}}"
+ 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"
+ - 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()
+ - name: Upload test result
uses: actions/upload-artifact@v3
with:
- name: samples-test-result-${{matrix.jdk}}
+ name: samples-test-result-${{ matrix.jdk }}
path: test/jobs/*-result*
samples-test-result:
- needs: [samples-test-job]
- if: always()
+ needs: [ samples-test-job ]
runs-on: ubuntu-latest
env:
- JAVA_VER: ${{matrix.jdk}}
+ JAVA_VER: ${{ matrix.jdk }}
strategy:
matrix:
jdk: [ 8, 11, 17, 21 ]
steps:
- - uses: actions/checkout@v3
+ - name: Checkout samples code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-samples'
+ repository: oxsean/dubbo-samples
ref: master
- - name: "Download test result"
+ - name: Download test result
uses: actions/download-artifact@v3
with:
- name: samples-test-result-${{matrix.jdk}}
+ name: samples-test-result-${{ matrix.jdk }}
path: test/jobs/
- - name: "Merge test result"
+ - name: Merge test result
run: ./test/scripts/merge-test-results.sh
integration-test-prepare:
+ name: Preparation for Integration Test
runs-on: ubuntu-latest
env:
- JOB_COUNT: 5
+ JOB_COUNT: 3
steps:
- - uses: actions/checkout@v3
+ - name: Checkout integration code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-integration-cases'
+ repository: oxsean/dubbo-integration-cases
ref: main
- - name: "Prepare test list"
- run: |
- bash ./test/scripts/prepare-test.sh
- - name: "Upload test list"
+ - name: Prepare test list
+ run: bash ./test/scripts/prepare-test.sh
+ - name: Upload test list
uses: actions/upload-artifact@v3
with:
name: integration-test-list
path: test/jobs
integration-test-job:
- needs: [build-source, integration-test-prepare]
- name: "Integration Test on ubuntu-latest (JobId: ${{matrix.job_id}} JavaVer: ${{matrix.jdk}})"
+ name: Integration Test (Job-${{ matrix.job_id }}, Java-${{ matrix.jdk }})
+ needs: [ build-source, integration-test-prepare ]
runs-on: ubuntu-latest
- timeout-minutes: 90
+ timeout-minutes: 60
env:
- JAVA_VER: ${{matrix.jdk}}
- TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt
+ JAVA_VER: ${{ matrix.jdk }}
+ TEST_CASE_FILE: jobs/testjob_${{ matrix.job_id }}.txt
strategy:
fail-fast: false
matrix:
jdk: [ 8, 11, 17, 21 ]
- job_id: [1, 2, 3, 4, 5]
+ job_id: [ 1, 2, 3 ]
steps:
- - uses: actions/checkout@v3
+ - name: Checkout integration code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-integration-cases'
+ repository: oxsean/dubbo-integration-cases
ref: main
- - name: "Cache local Maven repository"
- uses: actions/cache@v3
+ - name: Restore local maven repository cache
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- - name: "Restore Dubbo cache"
- uses: actions/cache@v3
+ - name: Restore Dubbo cache
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository/org/apache/dubbo
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
- restore-keys: |
- ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
- ${{ runner.os }}-dubbo-snapshot-
- - name: "Download test list"
+ - name: Download test list
uses: actions/download-artifact@v3
with:
name: integration-test-list
path: test/jobs/
- - name: "Set up JDK ${{matrix.jdk}}"
- uses: actions/setup-java@v1
+ - name: Set up JDK ${{ matrix.jdk }}
+ uses: actions/setup-java@v4
with:
- java-version: ${{matrix.jdk}}
- - name: "Init Candidate Versions"
+ distribution: zulu
+ java-version: ${{ matrix.jdk }}
+ - name: Init Candidate Versions
run: |
- DUBBO_VERSION="${{needs.build-source.outputs.version}}"
+ 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"
+ - 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()
+ - name: Upload test result
uses: actions/upload-artifact@v3
with:
- name: integration-test-result-${{matrix.jdk}}
+ name: integration-test-result-${{ matrix.jdk }}
path: test/jobs/*-result*
integration-test-result:
- needs: [integration-test-job]
- if: always()
+ needs: [ integration-test-job ]
runs-on: ubuntu-latest
env:
- JAVA_VER: ${{matrix.jdk}}
+ JAVA_VER: ${{ matrix.jdk }}
strategy:
matrix:
jdk: [ 8, 11, 17, 21 ]
steps:
- - uses: actions/checkout@v3
+ - name: Checkout integration code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-integration-cases'
+ repository: oxsean/dubbo-integration-cases
ref: main
- - name: "Download test result"
+ - name: Download test result
uses: actions/download-artifact@v3
with:
- name: integration-test-result-${{matrix.jdk}}
+ name: integration-test-result-${{ matrix.jdk }}
path: test/jobs/
- - name: "Merge test result"
+ - name: Merge test result
run: ./test/scripts/merge-test-results.sh
error-code-inspecting:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- ref: "3.3"
- path: "./dubbo"
-
- - uses: actions/checkout@v3
+ ref: ${{ env.DUBBO_BRANCH }}
+ path: ./dubbo
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-test-tools'
+ repository: apache/dubbo-test-tools
ref: main
- path: "./dubbo-test-tools"
-
- - name: "Set up JDK 21"
- uses: actions/setup-java@v3
+ path: ./dubbo-test-tools
+ - name: Set up JDK 21
+ uses: actions/setup-java@v4
with:
- distribution: 'zulu'
+ distribution: zulu
java-version: 21
-
- - name: "Compile Dubbo (Linux)"
+ - name: Restore local maven repository cache
+ uses: actions/cache/restore@v4
+ id: cache-maven-repository
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ - name: Compile Dubbo (Linux)
run: |
cd ${{ github.workspace }}/dubbo
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean install -DskipTests=true -DskipIntegrationTests=true -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true -Dmaven.javadoc.skip=true
- - name: "Run Error Code Inspecting"
+ ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -P '!demo',skip-spotless -Dmaven.test.skip=true
+ - name: Run Error Code Inspecting
env:
DUBBO_ECI_REPORT_AS_ERROR: true
run: |
cd ${{ github.workspace }}/dubbo-test-tools/dubbo-error-code-inspector
- ../mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C package exec:java -Ddubbo.eci.report-as-error=${DUBBO_ECI_REPORT_AS_ERROR} -Dmaven.test.skip=true -Dmaven.test.skip.exec=true -Ddubbo.eci.path=${{ github.workspace }}/dubbo
-
- - name: "Upload error code inspection result"
+ ../mvnw ${{ env.MAVEN_ARGS }} -T 2C package exec:java -Ddubbo.eci.report-as-error=${DUBBO_ECI_REPORT_AS_ERROR} -Dmaven.test.skip=true -Ddubbo.eci.path=${{ github.workspace }}/dubbo
+ - name: Upload error code inspection result
# always() should not be used here, since we don't need to handle the 'canceled' situation.
if: ${{ success() || failure() }}
uses: actions/upload-artifact@v3
with:
- name: "error-inspection-result"
+ name: error-inspection-result
path: ${{ github.workspace }}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt
native-image-inspecting:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- ref: "3.3"
- path: "./dubbo"
-
- - name: "Setup GraalVM environment"
+ ref: ${{ env.DUBBO_BRANCH }}
+ path: ./dubbo
+ - name: Setup GraalVM environment
uses: graalvm/setup-graalvm@v1
with:
- version: '22.3.0'
- java-version: '17'
- components: 'native-image'
+ version: 22.3.0
+ java-version: 17
+ components: native-image
github-token: ${{ secrets.GITHUB_TOKEN }}
- native-image-job-reports: 'true'
-
- - name: "Setup Zookeeper environment"
+ native-image-job-reports: true
+ - name: Setup Zookeeper environment
run: |
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz
mv apache-zookeeper-3.8.4-bin/conf/zoo_sample.cfg apache-zookeeper-3.8.4-bin/conf/zoo.cfg
apache-zookeeper-3.8.4-bin/bin/zkServer.sh start
-
- - name: "Check environment"
+ - name: Check environment
run: |
java --version
native-image --version
-
- - name: "Compile Dubbo (Linux)"
+ - name: Restore local maven repository cache
+ uses: actions/cache/restore@v4
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ - name: Compile Dubbo (Linux)
run: |
cd ${{ github.workspace }}/dubbo
- ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -P '!demo',skip-spotless -Dmaven.test.skip=true -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true
-
- - name: "Compile and run Dubbo demo for native (Linux)"
+ ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -P '!demo',skip-spotless -Dmaven.test.skip=true
+ - name: Compile and run Dubbo demo for native (Linux)
run: |
cd ${{ github.workspace }}/dubbo/dubbo-demo/dubbo-demo-native/dubbo-demo-native-interface
MVNW="${{ github.workspace }}/dubbo/mvnw ${{ env.MAVEN_ARGS }} -T 2C -Dmaven.test.skip=true"
$MVNW clean install
cd ../dubbo-demo-native-provider
- $MVNW clean package -P native native:compile
+ $MVNW clean package -P native native:compile
nohup ./target/dubbo-demo-native-provider &
cd ../dubbo-demo-native-consumer
$MVNW clean package -P native native:compile
diff --git a/.github/workflows/release-test.yml b/.github/workflows/release-test.yml
index dea1cf2d4c..f0be6660c3 100644
--- a/.github/workflows/release-test.yml
+++ b/.github/workflows/release-test.yml
@@ -9,66 +9,110 @@ on:
permissions:
contents: read
+defaults:
+ run:
+ shell: bash
+
env:
+ DUBBO_BRANCH: ${{ github.ref }}
FORK_COUNT: 2
FAIL_FAST: 0
SHOW_ERROR_DETAIL: 1
- #multi-version size limit
VERSIONS_LIMIT: 4
ALL_REMOTE_VERSION: true
- CANDIDATE_VERSIONS: '
+ JACOCO_ENABLE: false
+ CANDIDATE_VERSIONS: >-
spring.version:5.3.24;
spring-boot.version:2.7.6;
- '
+ MAVEN_OPTS: >-
+ -XX:+UseG1GC
+ -XX:InitiatingHeapOccupancyPercent=45
+ -XX:+UseStringDeduplication
+ -XX:-TieredCompilation
+ -XX:TieredStopAtLevel=1
+ -Dmaven.javadoc.skip=true
+ -Dmaven.wagon.http.retryHandler.count=5
+ -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
+ MAVEN_ARGS: >-
+ -e
+ --batch-mode
+ --no-snapshot-updates
+ --no-transfer-progress
+ --fail-fast
jobs:
- license:
+ check-license:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ env.DUBBO_BRANCH }}
- name: Check License
uses: apache/skywalking-eyes@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
build-source:
- runs-on: ubuntu-latest
+ name: Build Dubbo on ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}-latest
+ strategy:
+ matrix:
+ os: [ ubuntu, windows ]
outputs:
version: ${{ steps.dubbo-version.outputs.version }}
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
+ ref: ${{ env.DUBBO_BRANCH }}
path: dubbo
- - uses: actions/setup-java@v3
+ - name: Set up JDK
+ uses: actions/setup-java@v4
with:
- distribution: 'zulu'
+ distribution: zulu
java-version: 21
- - uses: actions/cache@v3
- name: "Cache local Maven repository"
+ - name: Restore local maven repository cache
+ uses: actions/cache/restore@v4
+ id: cache-maven-repository
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
- restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- ${{ runner.os }}-maven-
- - name: "Dubbo cache"
- uses: actions/cache@v3
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - name: Restore common local maven repository cache
+ uses: actions/cache/restore@v4
+ if: steps.cache-maven-repository.outputs.cache-hit != 'true'
with:
- path: ~/.m2/repository/org/apache/dubbo
- key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
- - name: "Build Dubbo with Maven"
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-
+ - name: Clean dubbo cache
+ run: rm -rf ~/.m2/repository/org/apache/dubbo
+ - 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,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 checkstyle file if failure"
+ ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -Psources,'!demo',skip-spotless,checkstyle -Dmaven.test.skip=true -Dcheckstyle_unix.skip=${{ matrix.os == 'windows' && 'true' || 'false' }}
+ - name: Save dubbo cache
+ uses: actions/cache/save@v4
+ with:
+ path: ~/.m2/repository/org/apache/dubbo
+ key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
+ - name: Clean dubbo cache
+ run: rm -rf ~/.m2/repository/org/apache/dubbo
+ - name: Save local maven repository cache
+ uses: actions/cache/save@v4
+ if: steps.cache-maven-repository.outputs.cache-hit != 'true'
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - 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()
+ - name: Upload checkstyle file if failure
uses: actions/upload-artifact@v3
+ if: failure()
with:
- name: "checkstyle-file"
+ name: checkstyle-file
path: ${{ github.workspace }}/checkstyle.zip
- - name: "Calculate Dubbo Version"
+ - name: Calculate Dubbo Version
id: dubbo-version
run: |
REVISION=`awk '/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print $1;exit;}' ./dubbo/pom.xml`
@@ -76,424 +120,399 @@ jobs:
echo "dubbo version: $REVISION"
unit-test-prepare:
- name: " Preparation for Unit Test On ${{ matrix.os }}"
- runs-on: ${{ matrix.os }}
+ name: Preparation for Unit Test on ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}-latest
+ env:
+ JOB_COUNT: 2
+ ZOOKEEPER_VERSION: 3.6.4
strategy:
- fail-fast: false
matrix:
- os: [ ubuntu-latest, windows-latest ]
- env:
- ZOOKEEPER_VERSION: 3.6.3
+ os: [ ubuntu, windows ]
steps:
- - uses: actions/cache@v3
- name: "Cache zookeeper binary archive"
- id: "cache-zookeeper"
+ - name: Checkout code
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ env.DUBBO_BRANCH }}
+ - name: Prepare test list
+ if: ${{ matrix.os == 'ubuntu' }}
+ run: bash ./dubbo-test/scripts/split-modules.sh ${{ env.JOB_COUNT }} '${{ github.workspace }}'
+ - name: Upload test list
+ uses: actions/upload-artifact@v3
+ if: ${{ matrix.os == 'ubuntu' }}
+ with:
+ name: unit-test-list
+ path: test/jobs
+ - name: Restore local zookeeper cache
+ uses: actions/cache/restore@v4
+ 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}
+ - name: Download zookeeper binary archive on ${{ matrix.os }}
+ if: steps.cache-zookeeper.outputs.cache-hit != 'true'
+ env:
+ MIRRORS: >-
+ https://archive.apache.org/dist
+ https://apache.website-solution.net
+ http://apache.stu.edu.tw
+ http://ftp.jaist.ac.jp/pub/apache
+ http://apache.mirror.cdnetworks.com
+ http://mirror.apache-kr.org/apache
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
+ cd '${{ github.workspace }}'
+ mkdir -p .tmp/zookeeper
+ for mirror in $MIRRORS; do
+ curl -sL "$mirror/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz" -o .tmp/zookeeper/apache-zookeeper-bin.tar.gz && break
+ done
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-latest, windows-latest ]
- jdk: [ 8, 11, 17, 21 ]
- env:
- DISABLE_FILE_SYSTEM_TEST: true
- steps:
- - uses: actions/checkout@v3
- - name: "Set up JDK ${{ matrix.jdk }}"
- uses: actions/setup-java@v3
- with:
- java-version: ${{ matrix.jdk }}
- distribution: 'zulu'
- - uses: actions/cache@v3
- name: "Cache local Maven repository"
- with:
- path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
- restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- ${{ runner.os }}-maven-
- - uses: actions/cache@v3
- name: "Cache zookeeper binary archive"
- id: "cache-zookeeper"
+ ls -al .tmp/zookeeper/apache-zookeeper-bin.tar.gz
+ - name: Save local zookeeper cache
+ uses: actions/cache/save@v4
+ if: steps.cache-zookeeper.outputs.cache-hit != 'true'
with:
path: ${{ github.workspace }}/.tmp/zookeeper
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
- restore-keys: |
- zookeeper-${{ runner.os }}-
- - 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"
-
- unit-test-fastjson2:
- needs: [build-source, unit-test-prepare]
- name: "Unit Test On ${{ matrix.os }} (JDK: ${{ matrix.jdk }}, Serialization: fastjson2)"
- runs-on: ${{ matrix.os }}
+ unit-test-job:
+ name: Unit Test (Job-${{matrix.job_id}}, Os-${{ matrix.os }}, Jdk-${{ matrix.jdk }}, Ser-${{ matrix.ser }})
+ needs: [ build-source, unit-test-prepare ]
+ runs-on: ${{ matrix.os }}-latest
+ timeout-minutes: 60
+ env:
+ ZOOKEEPER_VERSION: 3.6.4
+ DISABLE_FILE_SYSTEM_TEST: true
+ MAVEN_SUREFIRE_ADD_OPENS: true
+ DUBBO_DEFAULT_SERIALIZATION: ${{ matrix.ser }}
strategy:
fail-fast: false
matrix:
- os: [ ubuntu-latest, windows-latest ]
+ os: [ ubuntu, windows ]
jdk: [ 8, 11, 17, 21 ]
- env:
- DISABLE_FILE_SYSTEM_TEST: true
- DUBBO_DEFAULT_SERIALIZATION: fastjson2
- MAVEN_SUREFIRE_ADD_OPENS: true
+ ser: [ hessian2, fastjson2 ]
+ job_id: [ 1, 2 ]
steps:
- - uses: actions/checkout@v3
- - name: "Set up JDK ${{ matrix.jdk }}"
- uses: actions/setup-java@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ env.DUBBO_BRANCH }}
+ - name: Set up JDK
+ uses: actions/setup-java@v4
with:
- distribution: 'zulu'
+ distribution: zulu
java-version: ${{ matrix.jdk }}
- - uses: actions/cache@v3
- name: "Cache local Maven repository"
+ - name: Restore local maven repository
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- - uses: actions/cache@v3
- name: "Cache zookeeper binary archive"
- id: "cache-zookeeper"
+ - name: Restore Dubbo cache
+ uses: actions/cache/restore@v4
+ with:
+ path: ~/.m2/repository/org/apache/dubbo
+ key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
+ - name: Cache zookeeper binary archive
+ uses: actions/cache@v4
+ id: cache-zookeeper
with:
path: ${{ github.workspace }}/.tmp/zookeeper
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
restore-keys: |
zookeeper-${{ runner.os }}-
- - name: "Test with Maven with Integration Tests on JDK 8"
- timeout-minutes: 70
- if: ${{ startsWith( matrix.os, 'ubuntu') && matrix.jdk == '8' }}
- run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco,'!jdk15ge' -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 on JDK 8"
- timeout-minutes: 90
- if: ${{ startsWith( matrix.os, 'windows') && matrix.jdk == '8' }}
- run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -P"jacoco,'!jdk15ge'" -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: "Test with Maven with Integration Tests"
- timeout-minutes: 70
- if: ${{ startsWith( matrix.os, 'ubuntu') && matrix.jdk != '8' }}
- run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco,jdk15ge-simple,'!jdk15ge' -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') && matrix.jdk != '8' }}
- run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -P"jacoco,jdk15ge-simple,'!jdk15ge'" -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.workspa [...]
+ - name: Download test list
+ uses: actions/download-artifact@v3
+ with:
+ name: unit-test-list
+ path: test/jobs/
+ - name: Test with maven on ${{ matrix.os }}
+ timeout-minutes: 60
+ run: |
+ set -o pipefail
+ modules=$(cat test/jobs/test_modules_${{ matrix.job_id }}.txt)
+ ./mvnw ${{ env.MAVEN_ARGS }} clean test verify -Pjdk15ge-simple,'!jdk15ge','!demo',skip-spotless -pl "$modules" -DtrimStackTrace=false -Dmaven.test.skip=false -Drat.skip=false -Dflatten.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper 2>&1 | tee >(grep -n -B 5 -A 200 "FAILURE! -- in" > test_errors.log)
+ - name: Print test error log
+ if: failure()
+ run: cat test_errors.log
samples-test-prepare:
+ name: Preparation for Sample Test
runs-on: ubuntu-latest
env:
- JOB_COUNT: 5
+ JOB_COUNT: 3
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-samples'
+ repository: oxsean/dubbo-samples
ref: master
- - name: "Prepare test list"
- run: |
- bash ./test/scripts/prepare-test.sh
- - name: "Upload test list"
+ - name: Prepare test list
+ run: bash ./test/scripts/prepare-test.sh
+ - name: Upload test list
uses: actions/upload-artifact@v3
with:
name: samples-test-list
path: test/jobs
samples-test-job:
- needs: [build-source, samples-test-prepare]
- name: "Samples Test on ubuntu-latest (JobId: ${{matrix.job_id}} JavaVer: ${{matrix.jdk}})"
+ name: Samples Test (Job-${{matrix.job_id}}, Java-${{ matrix.jdk }})
+ needs: [ build-source, samples-test-prepare ]
runs-on: ubuntu-latest
- timeout-minutes: 90
+ timeout-minutes: 60
env:
- JAVA_VER: ${{matrix.jdk}}
- TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt
+ JAVA_VER: ${{ matrix.jdk }}
+ TEST_CASE_FILE: jobs/testjob_${{ matrix.job_id }}.txt
strategy:
fail-fast: false
matrix:
jdk: [ 8, 11, 17, 21 ]
- job_id: [1, 2, 3, 4, 5]
+ job_id: [ 1, 2, 3 ]
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-samples'
+ repository: oxsean/dubbo-samples
ref: master
- - name: "Cache local Maven repository"
- uses: actions/cache@v3
+ - name: Restore local maven repository cache
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- - name: "Restore Dubbo cache"
- uses: actions/cache@v3
+ - name: Restore Dubbo cache
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository/org/apache/dubbo
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
- restore-keys: |
- ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
- ${{ runner.os }}-dubbo-snapshot-
- - name: "Download test list"
+ - name: Download test list
uses: actions/download-artifact@v3
with:
name: samples-test-list
path: test/jobs/
- - name: "Set up JDK ${{matrix.jdk}}"
- uses: actions/setup-java@v1
+ - name: Set up JDK ${{ matrix.jdk }}
+ uses: actions/setup-java@v4
with:
- java-version: ${{matrix.jdk}}
- - name: "Init Candidate Versions"
+ distribution: zulu
+ java-version: ${{ matrix.jdk }}
+ - name: Init Candidate Versions
run: |
- DUBBO_VERSION="${{needs.build-source.outputs.version}}"
+ 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"
+ - 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()
+ - name: Upload test result
uses: actions/upload-artifact@v3
with:
- name: samples-test-result-${{matrix.jdk}}
+ name: samples-test-result-${{ matrix.jdk }}
path: test/jobs/*-result*
samples-test-result:
- needs: [samples-test-job]
- if: always()
+ needs: [ samples-test-job ]
runs-on: ubuntu-latest
env:
- JAVA_VER: ${{matrix.jdk}}
+ JAVA_VER: ${{ matrix.jdk }}
strategy:
matrix:
jdk: [ 8, 11, 17, 21 ]
steps:
- - uses: actions/checkout@v3
+ - name: Checkout samples code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-samples'
+ repository: oxsean/dubbo-samples
ref: master
- - name: "Download test result"
+ - name: Download test result
uses: actions/download-artifact@v3
with:
- name: samples-test-result-${{matrix.jdk}}
+ name: samples-test-result-${{ matrix.jdk }}
path: test/jobs/
- - name: "Merge test result"
+ - name: Merge test result
run: ./test/scripts/merge-test-results.sh
integration-test-prepare:
+ name: Preparation for Integration Test
runs-on: ubuntu-latest
env:
- JOB_COUNT: 5
+ JOB_COUNT: 3
steps:
- - uses: actions/checkout@v3
+ - name: Checkout integration code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-integration-cases'
+ repository: oxsean/dubbo-integration-cases
ref: main
- - name: "Prepare test list"
- run: |
- bash ./test/scripts/prepare-test.sh
- - name: "Upload test list"
+ - name: Prepare test list
+ run: bash ./test/scripts/prepare-test.sh
+ - name: Upload test list
uses: actions/upload-artifact@v3
with:
name: integration-test-list
path: test/jobs
integration-test-job:
- needs: [build-source, integration-test-prepare]
- name: "Integration Test on ubuntu-latest (JobId: ${{matrix.job_id}} JavaVer: ${{matrix.jdk}})"
+ name: Integration Test (Job-${{ matrix.job_id }}, Java-${{ matrix.jdk }})
+ needs: [ build-source, integration-test-prepare ]
runs-on: ubuntu-latest
- timeout-minutes: 90
+ timeout-minutes: 60
env:
- JAVA_VER: ${{matrix.jdk}}
- TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt
+ JAVA_VER: ${{ matrix.jdk }}
+ TEST_CASE_FILE: jobs/testjob_${{ matrix.job_id }}.txt
strategy:
fail-fast: false
matrix:
jdk: [ 8, 11, 17, 21 ]
- job_id: [1, 2, 3, 4, 5]
+ job_id: [ 1, 2, 3 ]
steps:
- - uses: actions/checkout@v3
+ - name: Checkout integration code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-integration-cases'
+ repository: oxsean/dubbo-integration-cases
ref: main
- - name: "Cache local Maven repository"
- uses: actions/cache@v3
+ - name: Restore local maven repository cache
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- - name: "Restore Dubbo cache"
- uses: actions/cache@v3
+ - name: Restore Dubbo cache
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository/org/apache/dubbo
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
- restore-keys: |
- ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
- ${{ runner.os }}-dubbo-snapshot-
- - name: "Download test list"
+ - name: Download test list
uses: actions/download-artifact@v3
with:
name: integration-test-list
path: test/jobs/
- - name: "Set up JDK ${{matrix.jdk}}"
- uses: actions/setup-java@v1
+ - name: Set up JDK ${{ matrix.jdk }}
+ uses: actions/setup-java@v4
with:
- java-version: ${{matrix.jdk}}
- - name: "Init Candidate Versions"
+ distribution: zulu
+ java-version: ${{ matrix.jdk }}
+ - name: Init Candidate Versions
run: |
- DUBBO_VERSION="${{needs.build-source.outputs.version}}"
+ 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"
+ - 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()
+ - name: Upload test result
uses: actions/upload-artifact@v3
with:
- name: integration-test-result-${{matrix.jdk}}
+ name: integration-test-result-${{ matrix.jdk }}
path: test/jobs/*-result*
integration-test-result:
- needs: [integration-test-job]
- if: always()
+ needs: [ integration-test-job ]
runs-on: ubuntu-latest
env:
- JAVA_VER: ${{matrix.jdk}}
+ JAVA_VER: ${{ matrix.jdk }}
strategy:
matrix:
jdk: [ 8, 11, 17, 21 ]
steps:
- - uses: actions/checkout@v3
+ - name: Checkout integration code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-integration-cases'
+ repository: oxsean/dubbo-integration-cases
ref: main
- - name: "Download test result"
+ - name: Download test result
uses: actions/download-artifact@v3
with:
- name: integration-test-result-${{matrix.jdk}}
+ name: integration-test-result-${{ matrix.jdk }}
path: test/jobs/
- - name: "Merge test result"
+ - name: Merge test result
run: ./test/scripts/merge-test-results.sh
error-code-inspecting:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- path: "./dubbo"
-
- - uses: actions/checkout@v3
+ ref: ${{ env.DUBBO_BRANCH }}
+ path: ./dubbo
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- repository: 'apache/dubbo-test-tools'
+ repository: apache/dubbo-test-tools
ref: main
- path: "./dubbo-test-tools"
-
- - name: "Set up JDK 21"
- uses: actions/setup-java@v3
+ path: ./dubbo-test-tools
+ - name: Set up JDK 21
+ uses: actions/setup-java@v4
with:
+ distribution: zulu
java-version: 21
- distribution: 'zulu'
-
- - name: "Compile Dubbo (Linux)"
+ - name: Restore local maven repository cache
+ uses: actions/cache/restore@v4
+ id: cache-maven-repository
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ - name: Compile Dubbo (Linux)
run: |
cd ${{ github.workspace }}/dubbo
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean install -DskipTests=true -DskipIntegrationTests=true -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true -Dmaven.javadoc.skip=true
- - name: "Run Error Code Inspecting"
+ ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -P '!demo',skip-spotless -Dmaven.test.skip=true
+ - name: Run Error Code Inspecting
env:
DUBBO_ECI_REPORT_AS_ERROR: true
run: |
cd ${{ github.workspace }}/dubbo-test-tools/dubbo-error-code-inspector
- ../mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C package exec:java -Ddubbo.eci.report-as-error=${DUBBO_ECI_REPORT_AS_ERROR} -Dmaven.test.skip=true -Dmaven.test.skip.exec=true -Ddubbo.eci.path=${{ github.workspace }}/dubbo
-
- - name: "Upload error code inspection result"
+ ../mvnw ${{ env.MAVEN_ARGS }} -T 2C package exec:java -Ddubbo.eci.report-as-error=${DUBBO_ECI_REPORT_AS_ERROR} -Dmaven.test.skip=true -Ddubbo.eci.path=${{ github.workspace }}/dubbo
+ - name: Upload error code inspection result
# always() should not be used here, since we don't need to handle the 'canceled' situation.
if: ${{ success() || failure() }}
uses: actions/upload-artifact@v3
with:
- name: "error-inspection-result"
+ name: error-inspection-result
path: ${{ github.workspace }}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt
native-image-inspecting:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - name: Checkout code
+ uses: actions/checkout@v4
with:
- path: "./dubbo"
-
- - name: "Setup GraalVM environment"
+ ref: ${{ env.DUBBO_BRANCH }}
+ path: ./dubbo
+ - name: Setup GraalVM environment
uses: graalvm/setup-graalvm@v1
with:
- version: '22.3.0'
- java-version: '17'
- components: 'native-image'
+ version: 22.3.0
+ java-version: 17
+ components: native-image
github-token: ${{ secrets.GITHUB_TOKEN }}
- native-image-job-reports: 'true'
-
- - name: "Setup Zookeeper environment"
+ native-image-job-reports: true
+ - name: Setup Zookeeper environment
run: |
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz
mv apache-zookeeper-3.8.4-bin/conf/zoo_sample.cfg apache-zookeeper-3.8.4-bin/conf/zoo.cfg
apache-zookeeper-3.8.4-bin/bin/zkServer.sh start
-
- - name: "Check environment"
+ - name: Check environment
run: |
java --version
native-image --version
-
- - name: "Compile Dubbo (Linux)"
+ - name: Restore local maven repository cache
+ uses: actions/cache/restore@v4
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+ - name: Compile Dubbo (Linux)
run: |
cd ${{ github.workspace }}/dubbo
- ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -P '!demo',skip-spotless -Dmaven.test.skip=true -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true
-
- - name: "Compile and run Dubbo demo for native (Linux)"
+ ./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -P '!demo',skip-spotless -Dmaven.test.skip=true
+ - name: Compile and run Dubbo demo for native (Linux)
run: |
cd ${{ github.workspace }}/dubbo/dubbo-demo/dubbo-demo-native/dubbo-demo-native-interface
MVNW="${{ github.workspace }}/dubbo/mvnw ${{ env.MAVEN_ARGS }} -T 2C -Dmaven.test.skip=true"
$MVNW clean install
cd ../dubbo-demo-native-provider
- $MVNW clean package -P native native:compile
+ $MVNW clean package -P native native:compile
nohup ./target/dubbo-demo-native-provider &
cd ../dubbo-demo-native-consumer
$MVNW clean package -P native native:compile
diff --git a/dubbo-test/scripts/split-modules.sh b/dubbo-test/scripts/split-modules.sh
index 1bc1fe47de..97d93ad416 100644
--- a/dubbo-test/scripts/split-modules.sh
+++ b/dubbo-test/scripts/split-modules.sh
@@ -18,12 +18,12 @@
readarray -t modules < <(find . -name "pom.xml" | while read -r pom; do
module_dir=$(dirname "$pom")
- if [ -d "$module_dir/src/test" ]; then
+ if [ -d "$module_dir/src/test" ] && [[ "$module_dir" != *"plugin-loom" ]] && [[ "$module_dir" != *"config-spring6" ]]; then
echo "${module_dir#./}"
fi
done)
-readarray -t modules < <(printf '%s\n' "${modules[@]}" | shuf --random-source=/dev/zero)
+readarray -t modules < <(printf '%s\n' "${modules[@]}" | shuf --random-source=<(yes 1))
jobs=$1
jobs_dir=$2/test/jobs
diff --git a/mvnw b/mvnw
index b7f064624f..0e79b70d51 100755
--- a/mvnw
+++ b/mvnw
@@ -191,7 +191,7 @@ else
else
wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar"
fi
- while IFS="=" read key value; do
+ while IFS='=\r' read key value; do
case "$key" in (wrapperUrl) wrapperUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"