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 01:30:00 UTC
(dubbo) branch split-unit-test updated (99ce66821d -> 1d1905d462)
This is an automated email from the ASF dual-hosted git repository.
oxsean pushed a change to branch split-unit-test
in repository https://gitbox.apache.org/repos/asf/dubbo.git
discard 99ce66821d Split unit test for 3.3
new 1d1905d462 Split unit test for 3.3
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (99ce66821d)
\
N -- N -- N refs/heads/split-unit-test (1d1905d462)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.github/workflows/build-and-test-pr.yml | 2 +-
.github/workflows/build-and-test-scheduled-3.3.yml | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
(dubbo) 01/01: Split unit test for 3.3
Posted by ox...@apache.org.
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 1d1905d462c4ce4008b0aa7ea191c9deb56ec0ca
Author: Sean Yang <ox...@gmail.com>
AuthorDate: Sun Sep 8 15:15:37 2024 +0800
Split unit test for 3.3
---
.github/workflows/build-and-test-pr.yml | 19 +-
.github/workflows/build-and-test-scheduled-3.3.yml | 555 +++++++++++----------
dubbo-test/scripts/split-modules.sh | 2 +-
mvnw | 2 +-
4 files changed, 294 insertions(+), 284 deletions(-)
diff --git a/.github/workflows/build-and-test-pr.yml b/.github/workflows/build-and-test-pr.yml
index 1ebb815797..83e2d10818 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;
@@ -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,7 +193,7 @@ 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'
run: |
mkdir -p ${{ github.workspace }}/.tmp/zookeeper
@@ -213,8 +214,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 +256,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 -Dcheckstyle.skip=false -Dcheckstyle_unix.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 +293,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 +392,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
diff --git a/.github/workflows/build-and-test-scheduled-3.3.yml b/.github/workflows/build-and-test-scheduled-3.3.yml
index 3240efb8f8..4e1a498de8 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=true
+ - 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,395 @@ 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'
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
+ command -v wget > /dev/null || wget() { curl -L -C - "$2" -o "$4"; }
+ wget -c https://archive.apache.org/dist/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O .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 .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 .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 .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 .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 .tmp/zookeeper/apache-zookeeper-bin.tar.gz
echo "list the downloaded zookeeper binary archive"
- ls -al ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
-
- unit-test:
- needs: [build-source, unit-test-prepare]
- name: "Unit Test On ${{ matrix.os }} (JDK: ${{ matrix.jdk }})"
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- os: [ ubuntu-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 -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=true -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 -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.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)"
+ - 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..16f4087c58 100644
--- a/dubbo-test/scripts/split-modules.sh
+++ b/dubbo-test/scripts/split-modules.sh
@@ -18,7 +18,7 @@
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)
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"