This is an automated email from the ASF dual-hosted git repository.
songxiaosheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-spi-extensions.git
The following commit(s) were added to refs/heads/master by this push:
new 92a9754 build: CI support unit test on Windows platform && Add
Dependabot config (#309)
92a9754 is described below
commit 92a97540af22dac5f9c42b228023f3df2440abeb
Author: aofall <[email protected]>
AuthorDate: Wed Apr 17 15:34:07 2024 +0800
build: CI support unit test on Windows platform && Add Dependabot config
(#309)
* Adjust CI workflow to support unit testing on Windows platform
* Add Dependabot config
* fix windows unit test failed
* fix windows platform unit test failed
* fix windows platform unit test failed
* fix windows platform unit test failed
* fix windows platform unit test failed
* fix windows platform unit test failed
* fix windows platform unit test failed
* update license check
* Upload surefire-reports if failure
---------
Co-authored-by: xiaosheng <[email protected]>
---
.github/dependabot.yaml | 15 ++
.github/workflows/build-and-test-pr.yml | 145 +++++++++----------
.github/workflows/build-and-test-scheduled-3.1.yml | 149 +++++++++-----------
.github/workflows/build-and-test-scheduled-3.2.yml | 149 +++++++++-----------
.../workflows/build-and-test-scheduled-main.yml | 136 +++++++-----------
.github/workflows/release-test.yml | 153 +++++++++------------
6 files changed, 325 insertions(+), 422 deletions(-)
diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml
new file mode 100644
index 0000000..805733a
--- /dev/null
+++ b/.github/dependabot.yaml
@@ -0,0 +1,15 @@
+version: 2
+updates:
+
+ - package-ecosystem: "maven"
+ directory: "/"
+ open-pull-requests-limit: 20
+ # Ignore major version updates
+ ignore:
+ - dependency-name: "*"
+ update-types: ["version-update:semver-major"]
+ schedule:
+ interval: "weekly"
+ day: "monday"
+ time: "03:00"
+ timezone: "US/Eastern"
diff --git a/.github/workflows/build-and-test-pr.yml
b/.github/workflows/build-and-test-pr.yml
index fd9a81a..8dcdee3 100644
--- a/.github/workflows/build-and-test-pr.yml
+++ b/.github/workflows/build-and-test-pr.yml
@@ -23,9 +23,10 @@ jobs:
name: "Check License"
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - name: Checkout
+ uses: actions/checkout@v4
- name: Check License
- uses: apache/skywalking-eyes@e1a02359b239bd28de3f6d35fdc870250fa513d5
+ uses: apache/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: "Set up JDK 21"
@@ -34,7 +35,7 @@ jobs:
distribution: 'zulu'
java-version: 21
- name: Restore Maven local repository cache
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
@@ -52,10 +53,17 @@ jobs:
build-tools:
name: "Build-tools"
needs: check-license
- runs-on: ubuntu-latest
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ ubuntu-latest, windows-latest ]
+ fail-fast: false
outputs:
cache-key: ${{ steps.dubbo-build-tools.cache }}
steps:
+ - name: Support long paths on Windows
+ if: ${{ startsWith( matrix.os, 'windows') }}
+ run: git config --system core.longpaths true
- uses: actions/checkout@v4
name: build tools
with:
@@ -67,7 +75,7 @@ jobs:
with:
distribution: 'zulu'
java-version: 21
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache local Maven repository"
with:
path: ~/.m2/repository
@@ -95,7 +103,7 @@ jobs:
with:
distribution: 'zulu'
java-version: 8
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache local Maven repository"
with:
path: ~/.m2/repository
@@ -139,15 +147,17 @@ jobs:
echo "dubbo-spi-extensions version: $REVISION"
# Download dependencies Prepare for unit test
unit-test-prepare:
- name: "Preparation for Unit Test"
- needs: [check-license, build-source]
- runs-on: ubuntu-latest
+ name: "Preparation for Unit Test On ${{ matrix.os }}"
+ needs: [check-license]
+ runs-on: ${{ matrix.os }}
strategy:
+ matrix:
+ os: [ ubuntu-latest, windows-latest ]
fail-fast: false
env:
ZOOKEEPER_VERSION: 3.6.3
steps:
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache zookeeper binary archive"
id: "cache-zookeeper"
with:
@@ -161,6 +171,20 @@ jobs:
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}
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 ||
@@ -171,7 +195,7 @@ jobs:
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
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache secret key"
id: "cache-secret-cert"
with:
@@ -188,17 +212,24 @@ jobs:
cat rsa_public.pem
echo "--- End Print Rsa Public Key"
# Start unit test
- unit-test-jdk8:
+ unit-test:
needs: [check-license, build-source, unit-test-prepare]
- name: "Unit Test On ubuntu-latest with JDK8"
- runs-on: ubuntu-latest
+ name: "Unit Test ${{ matrix.os }} with JDK ${{ matrix.jdk }}"
+ runs-on: ${{ matrix.os }}
strategy:
+ matrix:
+ os: [ ubuntu-latest, windows-latest ]
+ jdk: [ 8, 11 ]
fail-fast: false
env:
DISABLE_FILE_SYSTEM_TEST: true
CURRENT_ROLE: ${{ matrix.case-role }}
DUBBO_DEFAULT_SERIALIZATION: fastjson2
steps:
+ - name: Support Windows
+ if: ${{ startsWith( matrix.os, 'windows') }}
+ run: |
+ git config --system core.longpaths true
- uses: actions/checkout@v4
with:
fetch-depth: 0
@@ -207,7 +238,7 @@ jobs:
with:
distribution: 'zulu'
java-version: 8
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache local Maven repository"
with:
path: ~/.m2/repository
@@ -215,7 +246,7 @@ jobs:
restore-keys: |
${{ runner.os }}-maven-
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache zookeeper binary archive"
id: "cache-zookeeper"
with:
@@ -223,7 +254,7 @@ jobs:
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
restore-keys: |
zookeeper-${{ runner.os }}-
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache secret key"
id: "cache-secret-cert"
with:
@@ -243,78 +274,26 @@ jobs:
# run: |
# source ${{ github.workspace }}/.tmp/decrypted-sonarcloud-token
# ./mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast clean test verify
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_dubbo -DtrimStackTrace=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip [...]
- - name: "Test with Maven without SonarCloud Scan"
+ - name: "Test with Maven without SonarCloud Scan On Linux"
+ if: ${{ startsWith( matrix.os, 'linux') || startsWith( matrix.os,
'ubuntu') }}
timeout-minutes: 70
run: |
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089 -DtrimStackTrace=false
-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: "Upload coverage result"
- uses: actions/upload-artifact@v4
- with:
- name: coverage-result-jdk8
- path: "**/target/site/**/jacoco.xml"
- unit-test-jdk11:
- needs: [ check-license, build-source, unit-test-prepare ]
- name: "Unit Test On ubuntu-latest with JDK11"
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- env:
- DISABLE_FILE_SYSTEM_TEST: true
- CURRENT_ROLE: ${{ matrix.case-role }}
- DUBBO_DEFAULT_SERIALIZATION: fastjson2
- steps:
- - uses: actions/checkout@v4
- with:
- fetch-depth: 0
- - name: "Set up JDK ${{ matrix.jdk }}"
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 11
- - 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-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - uses: actions/cache@v3
- name: "Cache zookeeper binary archive"
- id: "cache-zookeeper"
- with:
- path: ${{ github.workspace }}/.tmp/zookeeper
- key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
- restore-keys: |
- zookeeper-${{ runner.os }}-
- - uses: actions/cache@v3
- name: "Cache secret key"
- id: "cache-secret-cert"
- with:
- path: ${{ github.workspace }}/.tmp/rsa
- key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
- # - name: "Get sonarcloud token"
- # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
- # run: |
- # curl "http://dubbo-vm.apache.org:8000/token?workflow_id=${{
github.run_id }}" -o ${{ github.workspace }}/.tmp/encrypted-sonarcloud-token
- # openssl rsautl -decrypt -in ${{ github.workspace
}}/.tmp/encrypted-sonarcloud-token -out ${{ github.workspace
}}/.tmp/decrypted-sonarcloud-token -inkey ${{ github.workspace
}}/.tmp/rsa/rsa_private.pem
- # - name: "Test with Maven with SonarCloud Scan"
- # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
- # timeout-minutes: 70
- # env:
- # # Needed to get some information about the pull request, if
any
- # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- # run: |
- # source ${{ github.workspace }}/.tmp/decrypted-sonarcloud-token
- # ./mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast clean test verify
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_dubbo -DtrimStackTrace=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip [...]
- - name: "Test with Maven without SonarCloud Scan"
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-D"maven.wagon.httpconnectionManager.ttlSeconds=120" -Pjacoco
-DtrimStackTrace=false -D"maven.wagon.http.retryHandler.count=5"
-DskipTests=false -DskipIntegrationTests=false -D"checkstyle.skip=false"
-D"checkstyle_unix.skip=false" -D"rat.skip=false" -D"maven.javadoc.skip=true"
-D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
+ - name: "Test with Maven without SonarCloud Scan On Windows"
+ if: ${{ startsWith( matrix.os, 'windows') }}
timeout-minutes: 70
run: |
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089 -DtrimStackTrace=false
-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
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-D"maven.wagon.httpconnectionManager.ttlSeconds=120" -Pjacoco
-DtrimStackTrace=false -D"maven.wagon.http.retryHandler.count=5"
-DskipTests=false -DskipIntegrationTests=false -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: "Upload surefire-reports if failure"
+ if: ${{ failure() }}
+ uses: actions/upload-artifact@v4
+ with:
+ name: surefire-reports-${{ matrix.os }}-${{ matrix.jdk }}
+ path: "**/target/surefire-reports/**"
- name: "Upload coverage result"
uses: actions/upload-artifact@v4
with:
- name: coverage-result-jdk11
+ name: coverage-result-${{ matrix.os }}-${{ matrix.jdk }}
path: "**/target/site/**/jacoco.xml"
# error-code-inspecting:
@@ -335,7 +314,7 @@ jobs:
# distribution: 'zulu'
# java-version: 21
# - name: Restore Maven local repository cache
-# uses: actions/cache@v3
+# uses: actions/cache@v4
# with:
# path: ~/.m2/repository
# key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
diff --git a/.github/workflows/build-and-test-scheduled-3.1.yml
b/.github/workflows/build-and-test-scheduled-3.1.yml
index 051d617..ec264fd 100644
--- a/.github/workflows/build-and-test-scheduled-3.1.yml
+++ b/.github/workflows/build-and-test-scheduled-3.1.yml
@@ -1,4 +1,4 @@
-name: Build and Test For PR
+name: Build and Test Scheduled On 3.1
on:
schedule:
@@ -26,9 +26,12 @@ jobs:
name: "Check License"
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ ref: '3.1.0'
- name: Check License
- uses: apache/skywalking-eyes@e1a02359b239bd28de3f6d35fdc870250fa513d5
+ uses: apache/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: "Set up JDK 21"
@@ -37,7 +40,7 @@ jobs:
distribution: 'zulu'
java-version: 21
- name: Restore Maven local repository cache
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
@@ -55,10 +58,17 @@ jobs:
build-tools:
name: "Build-tools"
needs: check-license
- runs-on: ubuntu-latest
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ ubuntu-latest, windows-latest ]
+ fail-fast: false
outputs:
cache-key: ${{ steps.dubbo-build-tools.cache }}
steps:
+ - name: Support long paths on Windows
+ if: ${{ startsWith( matrix.os, 'windows') }}
+ run: git config --system core.longpaths true
- uses: actions/checkout@v4
name: build tools
with:
@@ -70,7 +80,7 @@ jobs:
with:
distribution: 'zulu'
java-version: 21
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache local Maven repository"
with:
path: ~/.m2/repository
@@ -99,7 +109,7 @@ jobs:
with:
distribution: 'zulu'
java-version: 8
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache local Maven repository"
with:
path: ~/.m2/repository
@@ -143,15 +153,17 @@ jobs:
echo "dubbo-spi-extensions version: $REVISION"
# Download dependencies Prepare for unit test
unit-test-prepare:
- name: "Preparation for Unit Test"
- needs: [check-license, build-source]
- runs-on: ubuntu-latest
+ name: "Preparation for Unit Test On ${{ matrix.os }}"
+ needs: [check-license]
+ runs-on: ${{ matrix.os }}
strategy:
+ matrix:
+ os: [ ubuntu-latest, windows-latest ]
fail-fast: false
env:
ZOOKEEPER_VERSION: 3.6.3
steps:
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache zookeeper binary archive"
id: "cache-zookeeper"
with:
@@ -165,6 +177,7 @@ jobs:
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 ||
@@ -175,7 +188,20 @@ jobs:
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
- - uses: actions/cache@v3
+ - name: "Download zookeeper binary archive in Windows OS"
+ if: ${{ startsWith( matrix.os, 'windows') &&
steps.cache-zookeeper.outputs.cache-hit != 'true' }}
+ shell: msys2 {0}
+ 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
+ - uses: actions/cache@v4
name: "Cache secret key"
id: "cache-secret-cert"
with:
@@ -192,17 +218,24 @@ jobs:
cat rsa_public.pem
echo "--- End Print Rsa Public Key"
# Start unit test
- unit-test-jdk8:
+ unit-test:
needs: [check-license, build-source, unit-test-prepare]
- name: "Unit Test On ubuntu-latest with JDK8"
- runs-on: ubuntu-latest
+ name: "Unit Test ${{ matrix.os }} with JDK ${{ matrix.jdk }}"
+ runs-on: ${{ matrix.os }}
strategy:
+ matrix:
+ os: [ ubuntu-latest, windows-latest ]
+ jdk: [ 8, 11 ]
fail-fast: false
env:
DISABLE_FILE_SYSTEM_TEST: true
CURRENT_ROLE: ${{ matrix.case-role }}
DUBBO_DEFAULT_SERIALIZATION: fastjson2
steps:
+ - name: Support Windows
+ if: ${{ startsWith( matrix.os, 'windows') }}
+ run: |
+ git config --system core.longpaths true
- uses: actions/checkout@v4
with:
fetch-depth: 0
@@ -211,7 +244,7 @@ jobs:
with:
distribution: 'zulu'
java-version: 8
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache local Maven repository"
with:
path: ~/.m2/repository
@@ -219,7 +252,7 @@ jobs:
restore-keys: |
${{ runner.os }}-maven-
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache zookeeper binary archive"
id: "cache-zookeeper"
with:
@@ -227,7 +260,7 @@ jobs:
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
restore-keys: |
zookeeper-${{ runner.os }}-
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache secret key"
id: "cache-secret-cert"
with:
@@ -247,78 +280,26 @@ jobs:
# run: |
# source ${{ github.workspace }}/.tmp/decrypted-sonarcloud-token
# ./mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast clean test verify
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_dubbo -DtrimStackTrace=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip [...]
- - name: "Test with Maven without SonarCloud Scan"
+ - name: "Test with Maven without SonarCloud Scan On Linux"
+ if: ${{ startsWith( matrix.os, 'linux') || startsWith( matrix.os,
'ubuntu') }}
timeout-minutes: 70
run: |
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089 -DtrimStackTrace=false
-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: "Upload coverage result"
- uses: actions/upload-artifact@v4
- with:
- name: coverage-result-jdk8
- path: "**/target/site/**/jacoco.xml"
- unit-test-jdk11:
- needs: [ check-license, build-source, unit-test-prepare ]
- name: "Unit Test On ubuntu-latest with JDK11"
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- env:
- DISABLE_FILE_SYSTEM_TEST: true
- CURRENT_ROLE: ${{ matrix.case-role }}
- DUBBO_DEFAULT_SERIALIZATION: fastjson2
- steps:
- - uses: actions/checkout@v4
- with:
- fetch-depth: 0
- - name: "Set up JDK ${{ matrix.jdk }}"
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 11
- - 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-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - uses: actions/cache@v3
- name: "Cache zookeeper binary archive"
- id: "cache-zookeeper"
- with:
- path: ${{ github.workspace }}/.tmp/zookeeper
- key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
- restore-keys: |
- zookeeper-${{ runner.os }}-
- - uses: actions/cache@v3
- name: "Cache secret key"
- id: "cache-secret-cert"
- with:
- path: ${{ github.workspace }}/.tmp/rsa
- key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
- # - name: "Get sonarcloud token"
- # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
- # run: |
- # curl "http://dubbo-vm.apache.org:8000/token?workflow_id=${{
github.run_id }}" -o ${{ github.workspace }}/.tmp/encrypted-sonarcloud-token
- # openssl rsautl -decrypt -in ${{ github.workspace
}}/.tmp/encrypted-sonarcloud-token -out ${{ github.workspace
}}/.tmp/decrypted-sonarcloud-token -inkey ${{ github.workspace
}}/.tmp/rsa/rsa_private.pem
- # - name: "Test with Maven with SonarCloud Scan"
- # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
- # timeout-minutes: 70
- # env:
- # # Needed to get some information about the pull request, if
any
- # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- # run: |
- # source ${{ github.workspace }}/.tmp/decrypted-sonarcloud-token
- # ./mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast clean test verify
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_dubbo -DtrimStackTrace=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip [...]
- - name: "Test with Maven without SonarCloud Scan"
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-D"maven.wagon.httpconnectionManager.ttlSeconds=120" -Pjacoco
-DtrimStackTrace=false -D"maven.wagon.http.retryHandler.count=5"
-DskipTests=false -DskipIntegrationTests=false -D"checkstyle.skip=false"
-D"checkstyle_unix.skip=false" -D"rat.skip=false" -D"maven.javadoc.skip=true"
-D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
+ - name: "Test with Maven without SonarCloud Scan On Windows"
+ if: ${{ startsWith( matrix.os, 'windows') }}
timeout-minutes: 70
run: |
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089 -DtrimStackTrace=false
-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
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-D"maven.wagon.httpconnectionManager.ttlSeconds=120" -Pjacoco
-DtrimStackTrace=false -D"maven.wagon.http.retryHandler.count=5"
-DskipTests=false -DskipIntegrationTests=false -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: "Upload surefire-reports if failure"
+ if: ${{ failure() }}
+ uses: actions/upload-artifact@v4
+ with:
+ name: surefire-reports-${{ matrix.os }}-${{ matrix.jdk }}
+ path: "**/target/surefire-reports/**"
- name: "Upload coverage result"
uses: actions/upload-artifact@v4
with:
- name: coverage-result-jdk11
+ name: coverage-result-${{ matrix.os }}-${{ matrix.jdk }}
path: "**/target/site/**/jacoco.xml"
# error-code-inspecting:
@@ -339,7 +320,7 @@ jobs:
# distribution: 'zulu'
# java-version: 21
# - name: Restore Maven local repository cache
-# uses: actions/cache@v3
+# uses: actions/cache@v4
# with:
# path: ~/.m2/repository
# key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
diff --git a/.github/workflows/build-and-test-scheduled-3.2.yml
b/.github/workflows/build-and-test-scheduled-3.2.yml
index 73538be..3879c8b 100644
--- a/.github/workflows/build-and-test-scheduled-3.2.yml
+++ b/.github/workflows/build-and-test-scheduled-3.2.yml
@@ -1,4 +1,4 @@
-name: Build and Test For PR
+name: Build and Test Scheduled On 3.2
on:
schedule:
@@ -26,9 +26,12 @@ jobs:
name: "Check License"
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ ref: '3.2.0'
- name: Check License
- uses: apache/skywalking-eyes@e1a02359b239bd28de3f6d35fdc870250fa513d5
+ uses: apache/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: "Set up JDK 21"
@@ -37,7 +40,7 @@ jobs:
distribution: 'zulu'
java-version: 21
- name: Restore Maven local repository cache
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
@@ -55,10 +58,17 @@ jobs:
build-tools:
name: "Build-tools"
needs: check-license
- runs-on: ubuntu-latest
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ ubuntu-latest, windows-latest ]
+ fail-fast: false
outputs:
cache-key: ${{ steps.dubbo-build-tools.cache }}
steps:
+ - name: Support long paths on Windows
+ if: ${{ startsWith( matrix.os, 'windows') }}
+ run: git config --system core.longpaths true
- uses: actions/checkout@v4
name: build tools
with:
@@ -70,7 +80,7 @@ jobs:
with:
distribution: 'zulu'
java-version: 21
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache local Maven repository"
with:
path: ~/.m2/repository
@@ -99,7 +109,7 @@ jobs:
with:
distribution: 'zulu'
java-version: 8
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache local Maven repository"
with:
path: ~/.m2/repository
@@ -143,15 +153,17 @@ jobs:
echo "dubbo-spi-extensions version: $REVISION"
# Download dependencies Prepare for unit test
unit-test-prepare:
- name: "Preparation for Unit Test"
- needs: [check-license, build-source]
- runs-on: ubuntu-latest
+ name: "Preparation for Unit Test On ${{ matrix.os }}"
+ needs: [check-license]
+ runs-on: ${{ matrix.os }}
strategy:
+ matrix:
+ os: [ ubuntu-latest, windows-latest ]
fail-fast: false
env:
ZOOKEEPER_VERSION: 3.6.3
steps:
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache zookeeper binary archive"
id: "cache-zookeeper"
with:
@@ -165,6 +177,7 @@ jobs:
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 ||
@@ -175,7 +188,20 @@ jobs:
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
- - uses: actions/cache@v3
+ - name: "Download zookeeper binary archive in Windows OS"
+ if: ${{ startsWith( matrix.os, 'windows') &&
steps.cache-zookeeper.outputs.cache-hit != 'true' }}
+ shell: msys2 {0}
+ 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
+ - uses: actions/cache@v4
name: "Cache secret key"
id: "cache-secret-cert"
with:
@@ -192,17 +218,24 @@ jobs:
cat rsa_public.pem
echo "--- End Print Rsa Public Key"
# Start unit test
- unit-test-jdk8:
+ unit-test:
needs: [check-license, build-source, unit-test-prepare]
- name: "Unit Test On ubuntu-latest with JDK8"
- runs-on: ubuntu-latest
+ name: "Unit Test ${{ matrix.os }} with JDK ${{ matrix.jdk }}"
+ runs-on: ${{ matrix.os }}
strategy:
+ matrix:
+ os: [ ubuntu-latest, windows-latest ]
+ jdk: [ 8, 11 ]
fail-fast: false
env:
DISABLE_FILE_SYSTEM_TEST: true
CURRENT_ROLE: ${{ matrix.case-role }}
DUBBO_DEFAULT_SERIALIZATION: fastjson2
steps:
+ - name: Support Windows
+ if: ${{ startsWith( matrix.os, 'windows') }}
+ run: |
+ git config --system core.longpaths true
- uses: actions/checkout@v4
with:
fetch-depth: 0
@@ -211,7 +244,7 @@ jobs:
with:
distribution: 'zulu'
java-version: 8
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache local Maven repository"
with:
path: ~/.m2/repository
@@ -219,7 +252,7 @@ jobs:
restore-keys: |
${{ runner.os }}-maven-
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache zookeeper binary archive"
id: "cache-zookeeper"
with:
@@ -227,7 +260,7 @@ jobs:
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
restore-keys: |
zookeeper-${{ runner.os }}-
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache secret key"
id: "cache-secret-cert"
with:
@@ -247,78 +280,26 @@ jobs:
# run: |
# source ${{ github.workspace }}/.tmp/decrypted-sonarcloud-token
# ./mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast clean test verify
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_dubbo -DtrimStackTrace=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip [...]
- - name: "Test with Maven without SonarCloud Scan"
+ - name: "Test with Maven without SonarCloud Scan On Linux"
+ if: ${{ startsWith( matrix.os, 'linux') || startsWith( matrix.os,
'ubuntu') }}
timeout-minutes: 70
run: |
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089 -DtrimStackTrace=false
-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: "Upload coverage result"
- uses: actions/upload-artifact@v4
- with:
- name: coverage-result-jdk8
- path: "**/target/site/**/jacoco.xml"
- unit-test-jdk11:
- needs: [ check-license, build-source, unit-test-prepare ]
- name: "Unit Test On ubuntu-latest with JDK11"
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- env:
- DISABLE_FILE_SYSTEM_TEST: true
- CURRENT_ROLE: ${{ matrix.case-role }}
- DUBBO_DEFAULT_SERIALIZATION: fastjson2
- steps:
- - uses: actions/checkout@v4
- with:
- fetch-depth: 0
- - name: "Set up JDK ${{ matrix.jdk }}"
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 11
- - 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"
- with:
- path: ${{ github.workspace }}/.tmp/zookeeper
- key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
- restore-keys: |
- zookeeper-${{ runner.os }}-
- - uses: actions/cache@v3
- name: "Cache secret key"
- id: "cache-secret-cert"
- with:
- path: ${{ github.workspace }}/.tmp/rsa
- key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
- # - name: "Get sonarcloud token"
- # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
- # run: |
- # curl "http://dubbo-vm.apache.org:8000/token?workflow_id=${{
github.run_id }}" -o ${{ github.workspace }}/.tmp/encrypted-sonarcloud-token
- # openssl rsautl -decrypt -in ${{ github.workspace
}}/.tmp/encrypted-sonarcloud-token -out ${{ github.workspace
}}/.tmp/decrypted-sonarcloud-token -inkey ${{ github.workspace
}}/.tmp/rsa/rsa_private.pem
- # - name: "Test with Maven with SonarCloud Scan"
- # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
- # timeout-minutes: 70
- # env:
- # # Needed to get some information about the pull request, if
any
- # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- # run: |
- # source ${{ github.workspace }}/.tmp/decrypted-sonarcloud-token
- # ./mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast clean test verify
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_dubbo -DtrimStackTrace=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip [...]
- - name: "Test with Maven without SonarCloud Scan"
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-D"maven.wagon.httpconnectionManager.ttlSeconds=120" -Pjacoco
-DtrimStackTrace=false -D"maven.wagon.http.retryHandler.count=5"
-DskipTests=false -DskipIntegrationTests=false -D"checkstyle.skip=false"
-D"checkstyle_unix.skip=false" -D"rat.skip=false" -D"maven.javadoc.skip=true"
-D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
+ - name: "Test with Maven without SonarCloud Scan On Windows"
+ if: ${{ startsWith( matrix.os, 'windows') }}
timeout-minutes: 70
run: |
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089 -DtrimStackTrace=false
-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
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-D"maven.wagon.httpconnectionManager.ttlSeconds=120" -Pjacoco
-DtrimStackTrace=false -D"maven.wagon.http.retryHandler.count=5"
-DskipTests=false -DskipIntegrationTests=false -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: "Upload surefire-reports if failure"
+ if: ${{ failure() }}
+ uses: actions/upload-artifact@v4
+ with:
+ name: surefire-reports-${{ matrix.os }}-${{ matrix.jdk }}
+ path: "**/target/surefire-reports/**"
- name: "Upload coverage result"
uses: actions/upload-artifact@v4
with:
- name: coverage-result-jdk11
+ name: coverage-result-${{ matrix.os }}-${{ matrix.jdk }}
path: "**/target/site/**/jacoco.xml"
# error-code-inspecting:
@@ -339,7 +320,7 @@ jobs:
# distribution: 'zulu'
# java-version: 21
# - name: Restore Maven local repository cache
-# uses: actions/cache@v3
+# uses: actions/cache@v4
# with:
# path: ~/.m2/repository
# key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
diff --git a/.github/workflows/build-and-test-scheduled-main.yml
b/.github/workflows/build-and-test-scheduled-main.yml
index a3fb199..47ad3ca 100644
--- a/.github/workflows/build-and-test-scheduled-main.yml
+++ b/.github/workflows/build-and-test-scheduled-main.yml
@@ -1,4 +1,4 @@
-name: Build and Test For PR
+name: Build and Test Scheduled On master
on:
schedule:
@@ -26,9 +26,12 @@ jobs:
name: "Check License"
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ ref: 'master'
- name: Check License
- uses: apache/skywalking-eyes@e1a02359b239bd28de3f6d35fdc870250fa513d5
+ uses: apache/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: "Set up JDK 21"
@@ -37,7 +40,7 @@ jobs:
distribution: 'zulu'
java-version: 21
- name: Restore Maven local repository cache
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
@@ -55,10 +58,17 @@ jobs:
build-tools:
name: "Build-tools"
needs: check-license
- runs-on: ubuntu-latest
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ ubuntu-latest, windows-latest ]
+ fail-fast: false
outputs:
cache-key: ${{ steps.dubbo-build-tools.cache }}
steps:
+ - name: Support long paths on Windows
+ if: ${{ startsWith( matrix.os, 'windows') }}
+ run: git config --system core.longpaths true
- uses: actions/checkout@v4
name: build tools
with:
@@ -70,7 +80,7 @@ jobs:
with:
distribution: 'zulu'
java-version: 21
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache local Maven repository"
with:
path: ~/.m2/repository
@@ -99,7 +109,7 @@ jobs:
with:
distribution: 'zulu'
java-version: 8
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache local Maven repository"
with:
path: ~/.m2/repository
@@ -144,14 +154,15 @@ jobs:
# Download dependencies Prepare for unit test
unit-test-prepare:
name: "Preparation for Unit Test"
- needs: [check-license, build-source]
- runs-on: ubuntu-latest
+ needs: [check-license]
+ runs-on: ${{ matrix.os }}
strategy:
- fail-fast: false
+ matrix:
+ os: [ ubuntu-latest, windows-latest ]
env:
ZOOKEEPER_VERSION: 3.6.3
steps:
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache zookeeper binary archive"
id: "cache-zookeeper"
with:
@@ -175,7 +186,7 @@ jobs:
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
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache secret key"
id: "cache-secret-cert"
with:
@@ -192,17 +203,24 @@ jobs:
cat rsa_public.pem
echo "--- End Print Rsa Public Key"
# Start unit test
- unit-test-jdk8:
+ unit-test:
needs: [check-license, build-source, unit-test-prepare]
- name: "Unit Test On ubuntu-latest with JDK8"
- runs-on: ubuntu-latest
+ name: "Unit Test ${{ matrix.os }} with JDK ${{ matrix.jdk }}"
+ runs-on: ${{ matrix.os }}
strategy:
+ matrix:
+ os: [ ubuntu-latest, windows-latest ]
+ jdk: [ 8, 11 ]
fail-fast: false
env:
DISABLE_FILE_SYSTEM_TEST: true
CURRENT_ROLE: ${{ matrix.case-role }}
DUBBO_DEFAULT_SERIALIZATION: fastjson2
steps:
+ - name: Support Windows
+ if: ${{ startsWith( matrix.os, 'windows') }}
+ run: |
+ git config --system core.longpaths true
- uses: actions/checkout@v4
with:
fetch-depth: 0
@@ -211,15 +229,15 @@ jobs:
with:
distribution: 'zulu'
java-version: 8
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
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
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - uses: actions/cache@v4
name: "Cache zookeeper binary archive"
id: "cache-zookeeper"
with:
@@ -227,7 +245,7 @@ jobs:
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
restore-keys: |
zookeeper-${{ runner.os }}-
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache secret key"
id: "cache-secret-cert"
with:
@@ -247,78 +265,26 @@ jobs:
# run: |
# source ${{ github.workspace }}/.tmp/decrypted-sonarcloud-token
# ./mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast clean test verify
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_dubbo -DtrimStackTrace=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip [...]
- - name: "Test with Maven without SonarCloud Scan"
+ - name: "Test with Maven without SonarCloud Scan On Linux"
+ if: ${{ startsWith( matrix.os, 'linux') || startsWith( matrix.os,
'ubuntu') }}
timeout-minutes: 70
run: |
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089 -DtrimStackTrace=false
-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: "Upload coverage result"
- uses: actions/upload-artifact@v4
- with:
- name: coverage-result-jdk8
- path: "**/target/site/**/jacoco.xml"
- unit-test-jdk11:
- needs: [ check-license, build-source, unit-test-prepare ]
- name: "Unit Test On ubuntu-latest with JDK11"
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- env:
- DISABLE_FILE_SYSTEM_TEST: true
- CURRENT_ROLE: ${{ matrix.case-role }}
- DUBBO_DEFAULT_SERIALIZATION: fastjson2
- steps:
- - uses: actions/checkout@v4
- with:
- fetch-depth: 0
- - name: "Set up JDK ${{ matrix.jdk }}"
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 11
- - 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"
- with:
- path: ${{ github.workspace }}/.tmp/zookeeper
- key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
- restore-keys: |
- zookeeper-${{ runner.os }}-
- - uses: actions/cache@v3
- name: "Cache secret key"
- id: "cache-secret-cert"
- with:
- path: ${{ github.workspace }}/.tmp/rsa
- key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
- # - name: "Get sonarcloud token"
- # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
- # run: |
- # curl "http://dubbo-vm.apache.org:8000/token?workflow_id=${{
github.run_id }}" -o ${{ github.workspace }}/.tmp/encrypted-sonarcloud-token
- # openssl rsautl -decrypt -in ${{ github.workspace
}}/.tmp/encrypted-sonarcloud-token -out ${{ github.workspace
}}/.tmp/decrypted-sonarcloud-token -inkey ${{ github.workspace
}}/.tmp/rsa/rsa_private.pem
- # - name: "Test with Maven with SonarCloud Scan"
- # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
- # timeout-minutes: 70
- # env:
- # # Needed to get some information about the pull request, if
any
- # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- # run: |
- # source ${{ github.workspace }}/.tmp/decrypted-sonarcloud-token
- # ./mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast clean test verify
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_dubbo -DtrimStackTrace=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip [...]
- - name: "Test with Maven without SonarCloud Scan"
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-D"maven.wagon.httpconnectionManager.ttlSeconds=120" -Pjacoco
-DtrimStackTrace=false -D"maven.wagon.http.retryHandler.count=5"
-DskipTests=false -DskipIntegrationTests=false -D"checkstyle.skip=false"
-D"checkstyle_unix.skip=false" -D"rat.skip=false" -D"maven.javadoc.skip=true"
-D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
+ - name: "Test with Maven without SonarCloud Scan On Windows"
+ if: ${{ startsWith( matrix.os, 'windows') }}
timeout-minutes: 70
run: |
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089 -DtrimStackTrace=false
-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
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-D"maven.wagon.httpconnectionManager.ttlSeconds=120" -Pjacoco
-DtrimStackTrace=false -D"maven.wagon.http.retryHandler.count=5"
-DskipTests=false -DskipIntegrationTests=false -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: "Upload surefire-reports if failure"
+ if: ${{ failure() }}
+ uses: actions/upload-artifact@v4
+ with:
+ name: surefire-reports-${{ matrix.os }}-${{ matrix.jdk }}
+ path: "**/target/surefire-reports/**"
- name: "Upload coverage result"
uses: actions/upload-artifact@v4
with:
- name: coverage-result-jdk11
+ name: coverage-result-${{ matrix.os }}-${{ matrix.jdk }}
path: "**/target/site/**/jacoco.xml"
# error-code-inspecting:
@@ -339,7 +305,7 @@ jobs:
# distribution: 'zulu'
# java-version: 21
# - name: Restore Maven local repository cache
-# uses: actions/cache@v3
+# uses: actions/cache@v4
# with:
# path: ~/.m2/repository
# key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
diff --git a/.github/workflows/release-test.yml
b/.github/workflows/release-test.yml
index 1880a58..0905728 100644
--- a/.github/workflows/release-test.yml
+++ b/.github/workflows/release-test.yml
@@ -1,4 +1,4 @@
-name: Build and Test For PR
+name: Release Test
on:
push:
@@ -29,7 +29,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Check License
- uses: apache/skywalking-eyes@e1a02359b239bd28de3f6d35fdc870250fa513d5
+ uses: apache/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: "Set up JDK 21"
@@ -38,7 +38,7 @@ jobs:
distribution: 'zulu'
java-version: 21
- name: Restore Maven local repository cache
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
@@ -56,10 +56,17 @@ jobs:
build-tools:
name: "Build-tools"
needs: check-license
- runs-on: ubuntu-latest
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ ubuntu-latest, windows-latest ]
+ fail-fast: false
outputs:
cache-key: ${{ steps.dubbo-build-tools.cache }}
steps:
+ - name: Support long paths on Windows
+ if: ${{ startsWith( matrix.os, 'windows') }}
+ run: git config --system core.longpaths true
- uses: actions/checkout@v4
name: build tools
with:
@@ -71,7 +78,7 @@ jobs:
with:
distribution: 'zulu'
java-version: 21
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache local Maven repository"
with:
path: ~/.m2/repository
@@ -86,8 +93,11 @@ jobs:
# Build from source code
build-source:
name: "Build Dubbo-SPI-Extensions"
- needs: [check-license, build-tools]
- runs-on: ubuntu-latest
+ needs: [check-license]
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ ubuntu-latest, windows-latest ]
# output dubbo-spi-extensions version to others jobs
outputs:
version: ${{ steps.dubbo-spi-extensions-version.outputs.version }}
@@ -99,7 +109,7 @@ jobs:
with:
distribution: 'zulu'
java-version: 8
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache local Maven repository"
with:
path: ~/.m2/repository
@@ -143,15 +153,17 @@ jobs:
echo "dubbo-spi-extensions version: $REVISION"
# Download dependencies Prepare for unit test
unit-test-prepare:
- name: "Preparation for Unit Test"
- needs: [check-license, build-source]
- runs-on: ubuntu-latest
+ name: "Preparation for Unit Test On ${{ matrix.os }}"
+ needs: [check-license]
+ runs-on: ${{ matrix.os }}
strategy:
+ matrix:
+ os: [ ubuntu-latest, windows-latest ]
fail-fast: false
env:
ZOOKEEPER_VERSION: 3.6.3
steps:
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
name: "Cache zookeeper binary archive"
id: "cache-zookeeper"
with:
@@ -165,6 +177,7 @@ jobs:
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 ||
@@ -175,7 +188,20 @@ jobs:
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
- - uses: actions/cache@v3
+ - name: "Download zookeeper binary archive in Windows OS"
+ if: ${{ startsWith( matrix.os, 'windows') &&
steps.cache-zookeeper.outputs.cache-hit != 'true' }}
+ shell: msys2 {0}
+ 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
+ - uses: actions/cache@v4
name: "Cache secret key"
id: "cache-secret-cert"
with:
@@ -192,17 +218,24 @@ jobs:
cat rsa_public.pem
echo "--- End Print Rsa Public Key"
# Start unit test
- unit-test-jdk8:
+ unit-test:
needs: [check-license, build-source, unit-test-prepare]
- name: "Unit Test On ubuntu-latest with JDK8"
- runs-on: ubuntu-latest
+ name: "Unit Test ${{ matrix.os }} with JDK ${{ matrix.jdk }}"
+ runs-on: ${{ matrix.os }}
strategy:
+ matrix:
+ os: [ ubuntu-latest, windows-latest ]
+ jdk: [ 8, 11 ]
fail-fast: false
env:
DISABLE_FILE_SYSTEM_TEST: true
CURRENT_ROLE: ${{ matrix.case-role }}
DUBBO_DEFAULT_SERIALIZATION: fastjson2
steps:
+ - name: Support Windows
+ if: ${{ startsWith( matrix.os, 'windows') }}
+ run: |
+ git config --system core.longpaths true
- uses: actions/checkout@v4
with:
fetch-depth: 0
@@ -211,15 +244,15 @@ jobs:
with:
distribution: 'zulu'
java-version: 8
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
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
+ ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - uses: actions/cache@v4
name: "Cache zookeeper binary archive"
id: "cache-zookeeper"
with:
@@ -227,71 +260,13 @@ jobs:
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
restore-keys: |
zookeeper-${{ runner.os }}-
- - uses: actions/cache@v3
- name: "Cache secret key"
- id: "cache-secret-cert"
- with:
- path: ${{ github.workspace }}/.tmp/rsa
- key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
- # - name: "Get sonarcloud token"
- # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
- # run: |
- # curl "http://dubbo-vm.apache.org:8000/token?workflow_id=${{
github.run_id }}" -o ${{ github.workspace }}/.tmp/encrypted-sonarcloud-token
- # openssl rsautl -decrypt -in ${{ github.workspace
}}/.tmp/encrypted-sonarcloud-token -out ${{ github.workspace
}}/.tmp/decrypted-sonarcloud-token -inkey ${{ github.workspace
}}/.tmp/rsa/rsa_private.pem
- # - name: "Test with Maven with SonarCloud Scan"
- # if: ${{ github.repository == 'apache/dubbo-spi-extensions' }}
- # timeout-minutes: 70
- # env:
- # # Needed to get some information about the pull request, if
any
- # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- # run: |
- # source ${{ github.workspace }}/.tmp/decrypted-sonarcloud-token
- # ./mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast clean test verify
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_dubbo -DtrimStackTrace=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip [...]
- - name: "Test with Maven without SonarCloud Scan"
- timeout-minutes: 70
- run: |
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089 -DtrimStackTrace=false
-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: "Upload coverage result"
+ - name: "Upload surefire-reports if failure"
+ if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
- name: coverage-result-jdk8
- path: "**/target/site/**/jacoco.xml"
- unit-test-jdk11:
- needs: [ check-license, build-source, unit-test-prepare ]
- name: "Unit Test On ubuntu-latest with JDK11"
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- env:
- DISABLE_FILE_SYSTEM_TEST: true
- CURRENT_ROLE: ${{ matrix.case-role }}
- DUBBO_DEFAULT_SERIALIZATION: fastjson2
- steps:
- - uses: actions/checkout@v4
- with:
- fetch-depth: 0
- - name: "Set up JDK ${{ matrix.jdk }}"
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 11
- - 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"
- with:
- path: ${{ github.workspace }}/.tmp/zookeeper
- key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
- restore-keys: |
- zookeeper-${{ runner.os }}-
- - uses: actions/cache@v3
+ name: surefire-reports-${{ matrix.os }}-${{ matrix.jdk }}
+ path: "**/target/surefire-reports/**"
+ - uses: actions/cache@v4
name: "Cache secret key"
id: "cache-secret-cert"
with:
@@ -311,14 +286,20 @@ jobs:
# run: |
# source ${{ github.workspace }}/.tmp/decrypted-sonarcloud-token
# ./mvnw --batch-mode --no-snapshot-updates -e
--no-transfer-progress --fail-fast clean test verify
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_dubbo -DtrimStackTrace=false
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false
-DskipIntegrationTests=false -Dcheckstyle.skip [...]
- - name: "Test with Maven without SonarCloud Scan"
+ - name: "Test with Maven without SonarCloud Scan On Linux"
+ if: ${{ startsWith( matrix.os, 'linux') || startsWith( matrix.os,
'ubuntu') }}
+ timeout-minutes: 70
+ run: |
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-D"maven.wagon.httpconnectionManager.ttlSeconds=120" -Pjacoco
-DtrimStackTrace=false -D"maven.wagon.http.retryHandler.count=5"
-DskipTests=false -DskipIntegrationTests=false -D"checkstyle.skip=false"
-D"checkstyle_unix.skip=false" -D"rat.skip=false" -D"maven.javadoc.skip=true"
-D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
+ - name: "Test with Maven without SonarCloud Scan On Windows"
+ if: ${{ startsWith( matrix.os, 'windows') }}
timeout-minutes: 70
run: |
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120
-Pjacoco,jdk15ge-simple,'!jdk15ge',jacoco089 -DtrimStackTrace=false
-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
+ ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast clean test verify
-D"maven.wagon.httpconnectionManager.ttlSeconds=120" -Pjacoco
-DtrimStackTrace=false -D"maven.wagon.http.retryHandler.count=5"
-DskipTests=false -DskipIntegrationTests=false -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: "Upload coverage result"
uses: actions/upload-artifact@v4
with:
- name: coverage-result-jdk11
+ name: coverage-result-${{ matrix.os }}-${{ matrix.jdk }}
path: "**/target/site/**/jacoco.xml"
# error-code-inspecting:
@@ -339,7 +320,7 @@ jobs:
# distribution: 'zulu'
# java-version: 21
# - name: Restore Maven local repository cache
-# uses: actions/cache@v3
+# uses: actions/cache@v4
# with:
# path: ~/.m2/repository
# key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}