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 c431f44b Fix ci workflows (#617)
c431f44b is described below
commit c431f44bda22237251ee4eb90355583eacf63a92
Author: Ankit Shokeen <[email protected]>
AuthorDate: Tue Apr 29 19:52:42 2025 +0530
Fix ci workflows (#617)
* Support JDK17 for CI enviroment #13868
* updated maven profile for jdk17
* Fix CI: Update Checkstyle Plugin to v3.6.0 and Ensure Compatibility
* fix CI
* Added chekstle header file
* Muted header file for checktyle
* Disable Jacoco coverage reporting in CI workflows
* jacoco vesion change
* Fix indentation issue in GitHub Actions workflow
* Fix Codecov upload issue
* fix(ci): Improve GitHub Actions workflow for CI and Codecov
* revert build-and-test-pr changes
* [CI] Refactor workflows: optimize multi-version testing & caching
* Remove dubbo-build-tools references from workflows
* Remove obsolete merge-test-results.sh call from CI workflow
* Fix CI workflow: quote version strings and remove obsolete script
* fix: conformance.yml
* Fix CI workflow
* Fix CI: for master
* Fix CI: conformance.yml muted chore
* Fix CI: conformance.yml (Added conditional check in Build Test Image)
* refactor: simplify workflow using matrix strategy and remove unused steps
---------
Co-authored-by: xiaosheng <[email protected]>
---
.github/workflows/build-and-test-pr.yml | 45 +--
.github/workflows/build-and-test-scheduled-3.0.yml | 346 ---------------------
.github/workflows/build-and-test-scheduled-3.1.yml | 346 ---------------------
.github/workflows/build-and-test-scheduled-3.2.yml | 346 ---------------------
.github/workflows/build-and-test-scheduled-3.3.yml | 346 ---------------------
.../workflows/build-and-test-scheduled-main.yml | 331 --------------------
.github/workflows/conformance.yml | 281 +++++++++--------
.github/workflows/release-test.yml | 59 ++--
8 files changed, 213 insertions(+), 1887 deletions(-)
diff --git a/.github/workflows/build-and-test-pr.yml
b/.github/workflows/build-and-test-pr.yml
index b2bb5bdd..75975ddc 100644
--- a/.github/workflows/build-and-test-pr.yml
+++ b/.github/workflows/build-and-test-pr.yml
@@ -7,15 +7,15 @@ permissions:
env:
FORK_COUNT: 2
- FAIL_FAST: 0
- SHOW_ERROR_DETAIL: 1
- #multi-version size limit
- VERSIONS_LIMIT: 4
+ FAIL_FAST: false
+ SHOW_ERROR_DETAIL: true
+ VERSIONS_LIMIT: 5
JACOCO_ENABLE: true
CANDIDATE_VERSIONS: '
spring.version:5.3.24;
spring-boot.version:2.7.6;
- '
+ dubbo.version:latest;
+ '
jobs:
# Check ASF License
@@ -55,38 +55,46 @@ jobs:
needs: check-license
runs-on: ${{ matrix.os }}
strategy:
+ fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest ]
- fail-fast: false
+ dubbo-version:
+ - "3.0"
+ - "3.1"
+ - "3.2"
+ - "3.3"
+ - "3.4"
outputs:
- cache-key: ${{ steps.dubbo-build-tools.cache }}
+ cache-key: ${{ steps.maven-cache.outputs.cache-hit }}
steps:
- name: Support long paths on Windows
- if: ${{ startsWith( matrix.os, 'windows') }}
+ if: ${{ startsWith(matrix.os, 'windows') }}
run: git config --system core.longpaths true
- - uses: actions/checkout@v4
- name: build tools
+
+ - name: Checkout Dubbo Code
+ uses: actions/checkout@v4
with:
repository: 'apache/dubbo'
- ref: '3.2'
+ ref: ${{ matrix.dubbo-version }}
path: dubbo
+
- name: "Set up JDK 17"
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 17
+
- uses: actions/cache@v4
name: "Cache local Maven repository"
+ id: maven-cache
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ key: maven-${{ runner.os }}-${{ hashFiles('**/pom.xml') }}
restore-keys: |
- ${{ runner.os }}-maven-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - name: "Build tools"
- run: |
- cd ./dubbo
- ./mvnw --batch-mode -U -e --no-transfer-progress install -pl
dubbo-build-tools -am -DskipTests=true
+ maven-${{ runner.os }}-${{ matrix.dubbo-version }}-
+ maven-${{ runner.os }}-maven-
+ maven-${{ runner.os }}-
+
# Build from source code
build-source:
name: "Build Dubbo-SPI-Extensions"
@@ -97,6 +105,7 @@ jobs:
version: ${{ steps.dubbo-spi-extensions-version.outputs.version }}
steps:
- uses: actions/checkout@v4
+ if: steps.cache.outputs.cache-hit != 'true'
with:
path: dubbo-spi-extensions
- uses: actions/setup-java@v4
diff --git a/.github/workflows/build-and-test-scheduled-3.0.yml
b/.github/workflows/build-and-test-scheduled-3.0.yml
deleted file mode 100644
index 1e11d348..00000000
--- a/.github/workflows/build-and-test-scheduled-3.0.yml
+++ /dev/null
@@ -1,346 +0,0 @@
-name: Build and Test Scheduled On 3.0
-
-on:
- schedule:
- - cron: '0 0/6 * * *'
- workflow_dispatch:
-
-permissions:
- contents: read
-
-env:
- FORK_COUNT: 2
- FAIL_FAST: 0
- SHOW_ERROR_DETAIL: 1
- #multi-version size limit
- VERSIONS_LIMIT: 4
- JACOCO_ENABLE: true
- CANDIDATE_VERSIONS: '
- spring.version:5.3.24;
- spring-boot.version:2.7.6;
- '
-
-jobs:
- # Check ASF License
- check-license:
- name: "Check License"
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- with:
- ref: '3.0.0'
- - name: Check License
- uses: apache/[email protected]
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- - name: "Set up JDK 17"
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 17
- - name: Restore Maven local repository cache
- uses: actions/cache@v4
- with:
- path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- restore-keys: |
- ${{ runner.os }}-maven-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - name: Check Dependencies' License
- uses:
apache/skywalking-eyes/dependency@e1a02359b239bd28de3f6d35fdc870250fa513d5
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- config: .licenserc.yaml
- mode: check
- # Build dubbo-build-tool
- build-tools:
- name: "Build-tools"
- needs: check-license
- 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:
- repository: 'apache/dubbo'
- ref: '3.0'
- path: dubbo
- - name: "Set up JDK 17"
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 17
- - uses: actions/cache@v4
- name: "Cache local Maven repository"
- with:
- path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- restore-keys: |
- ${{ runner.os }}-maven-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - name: "Build tools"
- run: |
- cd ./dubbo
- ./mvnw --batch-mode -U -e --no-transfer-progress install -pl
dubbo-build-tools -am -DskipTests=true
- # Build from source code
- build-source:
- name: "Build Dubbo-SPI-Extensions"
- needs: [check-license, build-tools]
- runs-on: ubuntu-latest
- # output dubbo-spi-extensions version to others jobs
- outputs:
- version: ${{ steps.dubbo-spi-extensions-version.outputs.version }}
- steps:
- - uses: actions/checkout@v4
- with:
- ref: "3.0"
- path: dubbo-spi-extensions
- - uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 17
- - 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-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - name: "Compile Dubbo-SPI-Extensions (Linux)"
- run: |
- cd ./dubbo-spi-extensions
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast -T 2C clean compile -DskipTests=true -DskipIntegrationTests=true
-Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true
-Dmaven.javadoc.skip=true
- - name: "Build Dubbo-SPI-Extensions with Maven"
- run: |
- cd ./dubbo-spi-extensions
- ./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 class result"
- run: |
- shopt -s globstar
- zip ${{ github.workspace }}/class.zip **/target/classes/* -r
- - name: "Upload class result"
- uses: actions/upload-artifact@v4
- with:
- name: "class-file"
- path: ${{ github.workspace }}/class.zip
- - name: "Pack checkstyle file if failure"
- if: failure()
- run: zip ${{ github.workspace }}/checkstyle.zip *checkstyle* -r
- - name: "Upload checkstyle file if failure"
- if: failure()
- uses: actions/upload-artifact@v4
- with:
- name: "checkstyle-file"
- path: ${{ github.workspace }}/checkstyle.zip
- - name: "Calculate Dubbo-SPI-Extensions Version"
- id: dubbo-spi-extensions-version
- run: |
- REVISION=`awk
'/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print
$1;exit;}' ./dubbo-spi-extensions/pom.xml`
- echo "version=$REVISION" >> $GITHUB_OUTPUT
- echo "dubbo-spi-extensions version: $REVISION"
- # Download dependencies Prepare for unit test
- unit-test-prepare:
- 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@v4
- 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 }}-${{ 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}
- 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:
- path: ${{ github.workspace }}/.tmp/rsa
- key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
- - name: "Create Secret"
- run: |
- mkdir -p ${{ github.workspace }}/.tmp/rsa
- cd ${{ github.workspace }}/.tmp/rsa
- openssl genrsa -out rsa_private.pem 1024
- openssl rsa -in rsa_private.pem -pubout -out rsa_public.pem
- echo "Current workflow run id: ${{ github.run_id }}"
- echo "Start Print Rsa Public Key ---"
- cat rsa_public.pem
- echo "--- End Print Rsa Public Key"
- # Start unit test
- unit-test:
- needs: [check-license, build-source, unit-test-prepare]
- name: "Unit Test ${{ matrix.os }} with JDK ${{ matrix.jdk }}"
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [ ubuntu-latest, windows-latest ]
- jdk: [17]
- 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
- - name: "Set up JDK ${{ matrix.jdk }}"
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 17
- - 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-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - uses: actions/cache@v4
- 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@v4
- 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 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
-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-${{ matrix.os }}-${{ matrix.jdk }}
- path: "**/target/site/**/jacoco.xml"
- - name: "Upload coverage to Codecov"
- uses: codecov/codecov-action@v4
-
-# error-code-inspecting:
-# needs: [check-license, build-tools]
-# runs-on: ubuntu-latest
-# steps:
-# - uses: actions/checkout@v4
-# with:
-# path: "./dubbo-spi-extensions"
-# - uses: actions/checkout@v4
-# with:
-# repository: 'apache/dubbo-test-tools'
-# ref: main
-# path: "./dubbo-test-tools"
-# - name: "Set up JDK 21"
-# uses: actions/setup-java@v4
-# with:
-# distribution: 'zulu'
-# java-version: 21
-# - name: Restore Maven local repository cache
-# uses: actions/cache@v4
-# with:
-# path: ~/.m2/repository
-# key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-# restore-keys: |
-# ${{ runner.os }}-maven-
-# ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-# - name: "Compile Dubbo-SPI-Extensions (Linux)"
-# run: |
-# cd ${{ github.workspace }}/dubbo-spi-extensions
-# ./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"
-# 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-spi-extensions
-# - 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@v4
-# with:
-# name: "error-inspection-result"
-# path: ${{ github.workspace
}}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt
diff --git a/.github/workflows/build-and-test-scheduled-3.1.yml
b/.github/workflows/build-and-test-scheduled-3.1.yml
deleted file mode 100644
index 8e89fd19..00000000
--- a/.github/workflows/build-and-test-scheduled-3.1.yml
+++ /dev/null
@@ -1,346 +0,0 @@
-name: Build and Test Scheduled On 3.1
-
-on:
- schedule:
- - cron: '0 0/6 * * *'
- workflow_dispatch:
-
-permissions:
- contents: read
-
-env:
- FORK_COUNT: 2
- FAIL_FAST: 0
- SHOW_ERROR_DETAIL: 1
- #multi-version size limit
- VERSIONS_LIMIT: 4
- JACOCO_ENABLE: true
- CANDIDATE_VERSIONS: '
- spring.version:5.3.24;
- spring-boot.version:2.7.6;
- '
-
-jobs:
- # Check ASF License
- check-license:
- name: "Check License"
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- with:
- ref: '3.1'
- - name: Check License
- uses: apache/[email protected]
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- - name: "Set up JDK 17"
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 17
- - name: Restore Maven local repository cache
- uses: actions/cache@v4
- with:
- path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- restore-keys: |
- ${{ runner.os }}-maven-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - name: Check Dependencies' License
- uses:
apache/skywalking-eyes/dependency@e1a02359b239bd28de3f6d35fdc870250fa513d5
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- config: .licenserc.yaml
- mode: check
- # Build dubbo-build-tool
- build-tools:
- name: "Build-tools"
- needs: check-license
- 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:
- repository: 'apache/dubbo'
- ref: '3.1'
- path: dubbo
- - name: "Set up JDK 17"
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 17
- - uses: actions/cache@v4
- name: "Cache local Maven repository"
- with:
- path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- restore-keys: |
- ${{ runner.os }}-maven-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - name: "Build tools"
- run: |
- cd ./dubbo
- ./mvnw --batch-mode -U -e --no-transfer-progress install -pl
dubbo-build-tools -am -DskipTests=true
- # Build from source code
- build-source:
- name: "Build Dubbo-SPI-Extensions"
- needs: [check-license, build-tools]
- runs-on: ubuntu-latest
- # output dubbo-spi-extensions version to others jobs
- outputs:
- version: ${{ steps.dubbo-spi-extensions-version.outputs.version }}
- steps:
- - uses: actions/checkout@v4
- with:
- ref: "3.1"
- path: dubbo-spi-extensions
- - uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 17
- - 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-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - name: "Compile Dubbo-SPI-Extensions (Linux)"
- run: |
- cd ./dubbo-spi-extensions
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast -T 2C clean compile -DskipTests=true -DskipIntegrationTests=true
-Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true
-Dmaven.javadoc.skip=true
- - name: "Build Dubbo-SPI-Extensions with Maven"
- run: |
- cd ./dubbo-spi-extensions
- ./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 class result"
- run: |
- shopt -s globstar
- zip ${{ github.workspace }}/class.zip **/target/classes/* -r
- - name: "Upload class result"
- uses: actions/upload-artifact@v4
- with:
- name: "class-file"
- path: ${{ github.workspace }}/class.zip
- - name: "Pack checkstyle file if failure"
- if: failure()
- run: zip ${{ github.workspace }}/checkstyle.zip *checkstyle* -r
- - name: "Upload checkstyle file if failure"
- if: failure()
- uses: actions/upload-artifact@v4
- with:
- name: "checkstyle-file"
- path: ${{ github.workspace }}/checkstyle.zip
- - name: "Calculate Dubbo-SPI-Extensions Version"
- id: dubbo-spi-extensions-version
- run: |
- REVISION=`awk
'/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print
$1;exit;}' ./dubbo-spi-extensions/pom.xml`
- echo "version=$REVISION" >> $GITHUB_OUTPUT
- echo "dubbo-spi-extensions version: $REVISION"
- # Download dependencies Prepare for unit test
- unit-test-prepare:
- 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@v4
- 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 }}-${{ 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}
- 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:
- path: ${{ github.workspace }}/.tmp/rsa
- key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
- - name: "Create Secret"
- run: |
- mkdir -p ${{ github.workspace }}/.tmp/rsa
- cd ${{ github.workspace }}/.tmp/rsa
- openssl genrsa -out rsa_private.pem 1024
- openssl rsa -in rsa_private.pem -pubout -out rsa_public.pem
- echo "Current workflow run id: ${{ github.run_id }}"
- echo "Start Print Rsa Public Key ---"
- cat rsa_public.pem
- echo "--- End Print Rsa Public Key"
- # Start unit test
- unit-test:
- needs: [check-license, build-source, unit-test-prepare]
- name: "Unit Test ${{ matrix.os }} with JDK ${{ matrix.jdk }}"
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [ ubuntu-latest, windows-latest ]
- jdk: [17]
- 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
- - name: "Set up JDK ${{ matrix.jdk }}"
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 17
- - 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-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - uses: actions/cache@v4
- 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@v4
- 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 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
-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-${{ matrix.os }}-${{ matrix.jdk }}
- path: "**/target/site/**/jacoco.xml"
- - name: "Upload coverage to Codecov"
- uses: codecov/codecov-action@v4
-
-# error-code-inspecting:
-# needs: [check-license, build-tools]
-# runs-on: ubuntu-latest
-# steps:
-# - uses: actions/checkout@v4
-# with:
-# path: "./dubbo-spi-extensions"
-# - uses: actions/checkout@v4
-# with:
-# repository: 'apache/dubbo-test-tools'
-# ref: main
-# path: "./dubbo-test-tools"
-# - name: "Set up JDK 21"
-# uses: actions/setup-java@v4
-# with:
-# distribution: 'zulu'
-# java-version: 21
-# - name: Restore Maven local repository cache
-# uses: actions/cache@v4
-# with:
-# path: ~/.m2/repository
-# key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-# restore-keys: |
-# ${{ runner.os }}-maven-
-# ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-# - name: "Compile Dubbo-SPI-Extensions (Linux)"
-# run: |
-# cd ${{ github.workspace }}/dubbo-spi-extensions
-# ./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"
-# 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-spi-extensions
-# - 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@v4
-# with:
-# name: "error-inspection-result"
-# path: ${{ github.workspace
}}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt
diff --git a/.github/workflows/build-and-test-scheduled-3.2.yml
b/.github/workflows/build-and-test-scheduled-3.2.yml
deleted file mode 100644
index 6b95af24..00000000
--- a/.github/workflows/build-and-test-scheduled-3.2.yml
+++ /dev/null
@@ -1,346 +0,0 @@
-name: Build and Test Scheduled On 3.2
-
-on:
- schedule:
- - cron: '0 0/6 * * *'
- workflow_dispatch:
-
-permissions:
- contents: read
-
-env:
- FORK_COUNT: 2
- FAIL_FAST: 0
- SHOW_ERROR_DETAIL: 1
- #multi-version size limit
- VERSIONS_LIMIT: 4
- JACOCO_ENABLE: true
- CANDIDATE_VERSIONS: '
- spring.version:5.3.24;
- spring-boot.version:2.7.6;
- '
-
-jobs:
- # Check ASF License
- check-license:
- name: "Check License"
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- with:
- ref: '3.2'
- - name: Check License
- uses: apache/[email protected]
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- - name: "Set up JDK 17"
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 17
- - name: Restore Maven local repository cache
- uses: actions/cache@v4
- with:
- path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- restore-keys: |
- ${{ runner.os }}-maven-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - name: Check Dependencies' License
- uses:
apache/skywalking-eyes/dependency@e1a02359b239bd28de3f6d35fdc870250fa513d5
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- config: .licenserc.yaml
- mode: check
- # Build dubbo-build-tool
- build-tools:
- name: "Build-tools"
- needs: check-license
- 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:
- repository: 'apache/dubbo'
- ref: '3.2'
- path: dubbo
- - name: "Set up JDK 17"
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 17
- - uses: actions/cache@v4
- name: "Cache local Maven repository"
- with:
- path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- restore-keys: |
- ${{ runner.os }}-maven-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - name: "Build tools"
- run: |
- cd ./dubbo
- ./mvnw --batch-mode -U -e --no-transfer-progress install -pl
dubbo-build-tools -am -DskipTests=true
- # Build from source code
- build-source:
- name: "Build Dubbo-SPI-Extensions"
- needs: [check-license, build-tools]
- runs-on: ubuntu-latest
- # output dubbo-spi-extensions version to others jobs
- outputs:
- version: ${{ steps.dubbo-spi-extensions-version.outputs.version }}
- steps:
- - uses: actions/checkout@v4
- with:
- ref: "3.2"
- path: dubbo-spi-extensions
- - uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 17
- - 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-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - name: "Compile Dubbo-SPI-Extensions (Linux)"
- run: |
- cd ./dubbo-spi-extensions
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast -T 2C clean compile -DskipTests=true -DskipIntegrationTests=true
-Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true
-Dmaven.javadoc.skip=true
- - name: "Build Dubbo-SPI-Extensions with Maven"
- run: |
- cd ./dubbo-spi-extensions
- ./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 class result"
- run: |
- shopt -s globstar
- zip ${{ github.workspace }}/class.zip **/target/classes/* -r
- - name: "Upload class result"
- uses: actions/upload-artifact@v4
- with:
- name: "class-file"
- path: ${{ github.workspace }}/class.zip
- - name: "Pack checkstyle file if failure"
- if: failure()
- run: zip ${{ github.workspace }}/checkstyle.zip *checkstyle* -r
- - name: "Upload checkstyle file if failure"
- if: failure()
- uses: actions/upload-artifact@v4
- with:
- name: "checkstyle-file"
- path: ${{ github.workspace }}/checkstyle.zip
- - name: "Calculate Dubbo-SPI-Extensions Version"
- id: dubbo-spi-extensions-version
- run: |
- REVISION=`awk
'/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print
$1;exit;}' ./dubbo-spi-extensions/pom.xml`
- echo "version=$REVISION" >> $GITHUB_OUTPUT
- echo "dubbo-spi-extensions version: $REVISION"
- # Download dependencies Prepare for unit test
- unit-test-prepare:
- 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@v4
- 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 }}-${{ 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}
- 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:
- path: ${{ github.workspace }}/.tmp/rsa
- key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
- - name: "Create Secret"
- run: |
- mkdir -p ${{ github.workspace }}/.tmp/rsa
- cd ${{ github.workspace }}/.tmp/rsa
- openssl genrsa -out rsa_private.pem 1024
- openssl rsa -in rsa_private.pem -pubout -out rsa_public.pem
- echo "Current workflow run id: ${{ github.run_id }}"
- echo "Start Print Rsa Public Key ---"
- cat rsa_public.pem
- echo "--- End Print Rsa Public Key"
- # Start unit test
- unit-test:
- needs: [check-license, build-source, unit-test-prepare]
- name: "Unit Test ${{ matrix.os }} with JDK ${{ matrix.jdk }}"
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [ ubuntu-latest, windows-latest ]
- jdk: [17]
- 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
- - name: "Set up JDK ${{ matrix.jdk }}"
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 17
- - 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-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - uses: actions/cache@v4
- 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@v4
- 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 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
-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-${{ matrix.os }}-${{ matrix.jdk }}
- path: "**/target/site/**/jacoco.xml"
- - name: "Upload coverage to Codecov"
- uses: codecov/codecov-action@v4
-
-# error-code-inspecting:
-# needs: [check-license, build-tools]
-# runs-on: ubuntu-latest
-# steps:
-# - uses: actions/checkout@v4
-# with:
-# path: "./dubbo-spi-extensions"
-# - uses: actions/checkout@v4
-# with:
-# repository: 'apache/dubbo-test-tools'
-# ref: main
-# path: "./dubbo-test-tools"
-# - name: "Set up JDK 21"
-# uses: actions/setup-java@v4
-# with:
-# distribution: 'zulu'
-# java-version: 21
-# - name: Restore Maven local repository cache
-# uses: actions/cache@v4
-# with:
-# path: ~/.m2/repository
-# key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-# restore-keys: |
-# ${{ runner.os }}-maven-
-# ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-# - name: "Compile Dubbo-SPI-Extensions (Linux)"
-# run: |
-# cd ${{ github.workspace }}/dubbo-spi-extensions
-# ./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"
-# 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-spi-extensions
-# - 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@v4
-# with:
-# name: "error-inspection-result"
-# path: ${{ github.workspace
}}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt
diff --git a/.github/workflows/build-and-test-scheduled-3.3.yml
b/.github/workflows/build-and-test-scheduled-3.3.yml
deleted file mode 100644
index fd044f90..00000000
--- a/.github/workflows/build-and-test-scheduled-3.3.yml
+++ /dev/null
@@ -1,346 +0,0 @@
-name: Build and Test Scheduled On 3.3
-
-on:
- schedule:
- - cron: '0 0/6 * * *'
- workflow_dispatch:
-
-permissions:
- contents: read
-
-env:
- FORK_COUNT: 2
- FAIL_FAST: 0
- SHOW_ERROR_DETAIL: 1
- #multi-version size limit
- VERSIONS_LIMIT: 4
- JACOCO_ENABLE: true
- CANDIDATE_VERSIONS: '
- spring.version:5.3.24;
- spring-boot.version:2.7.6;
- '
-
-jobs:
- # Check ASF License
- check-license:
- name: "Check License"
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- with:
- ref: '3.3'
- - name: Check License
- uses: apache/[email protected]
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- - name: "Set up JDK 17"
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 17
- - name: Restore Maven local repository cache
- uses: actions/cache@v4
- with:
- path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- restore-keys: |
- ${{ runner.os }}-maven-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - name: Check Dependencies' License
- uses:
apache/skywalking-eyes/dependency@e1a02359b239bd28de3f6d35fdc870250fa513d5
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- config: .licenserc.yaml
- mode: check
- # Build dubbo-build-tool
- build-tools:
- name: "Build-tools"
- needs: check-license
- 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:
- repository: 'apache/dubbo'
- ref: '3.2'
- path: dubbo
- - name: "Set up JDK 17"
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 17
- - uses: actions/cache@v4
- name: "Cache local Maven repository"
- with:
- path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- restore-keys: |
- ${{ runner.os }}-maven-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - name: "Build tools"
- run: |
- cd ./dubbo
- ./mvnw --batch-mode -U -e --no-transfer-progress install -pl
dubbo-build-tools -am -DskipTests=true
- # Build from source code
- build-source:
- name: "Build Dubbo-SPI-Extensions"
- needs: [check-license, build-tools]
- runs-on: ubuntu-latest
- # output dubbo-spi-extensions version to others jobs
- outputs:
- version: ${{ steps.dubbo-spi-extensions-version.outputs.version }}
- steps:
- - uses: actions/checkout@v4
- with:
- ref: "3.3"
- path: dubbo-spi-extensions
- - uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 17
- - 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-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - name: "Compile Dubbo-SPI-Extensions (Linux)"
- run: |
- cd ./dubbo-spi-extensions
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast -T 2C clean compile -DskipTests=true -DskipIntegrationTests=true
-Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true
-Dmaven.javadoc.skip=true
- - name: "Build Dubbo-SPI-Extensions with Maven"
- run: |
- cd ./dubbo-spi-extensions
- ./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 class result"
- run: |
- shopt -s globstar
- zip ${{ github.workspace }}/class.zip **/target/classes/* -r
- - name: "Upload class result"
- uses: actions/upload-artifact@v4
- with:
- name: "class-file"
- path: ${{ github.workspace }}/class.zip
- - name: "Pack checkstyle file if failure"
- if: failure()
- run: zip ${{ github.workspace }}/checkstyle.zip *checkstyle* -r
- - name: "Upload checkstyle file if failure"
- if: failure()
- uses: actions/upload-artifact@v4
- with:
- name: "checkstyle-file"
- path: ${{ github.workspace }}/checkstyle.zip
- - name: "Calculate Dubbo-SPI-Extensions Version"
- id: dubbo-spi-extensions-version
- run: |
- REVISION=`awk
'/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print
$1;exit;}' ./dubbo-spi-extensions/pom.xml`
- echo "version=$REVISION" >> $GITHUB_OUTPUT
- echo "dubbo-spi-extensions version: $REVISION"
- # Download dependencies Prepare for unit test
- unit-test-prepare:
- 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@v4
- 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 }}-${{ 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}
- 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:
- path: ${{ github.workspace }}/.tmp/rsa
- key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
- - name: "Create Secret"
- run: |
- mkdir -p ${{ github.workspace }}/.tmp/rsa
- cd ${{ github.workspace }}/.tmp/rsa
- openssl genrsa -out rsa_private.pem 1024
- openssl rsa -in rsa_private.pem -pubout -out rsa_public.pem
- echo "Current workflow run id: ${{ github.run_id }}"
- echo "Start Print Rsa Public Key ---"
- cat rsa_public.pem
- echo "--- End Print Rsa Public Key"
- # Start unit test
- unit-test:
- needs: [check-license, build-source, unit-test-prepare]
- name: "Unit Test ${{ matrix.os }} with JDK ${{ matrix.jdk }}"
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [ ubuntu-latest, windows-latest ]
- jdk: [17]
- 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
- - name: "Set up JDK ${{ matrix.jdk }}"
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 17
- - 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-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - uses: actions/cache@v4
- 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@v4
- 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 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
-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-${{ matrix.os }}-${{ matrix.jdk }}
- path: "**/target/site/**/jacoco.xml"
- - name: "Upload coverage to Codecov"
- uses: codecov/codecov-action@v4
-
-# error-code-inspecting:
-# needs: [check-license, build-tools]
-# runs-on: ubuntu-latest
-# steps:
-# - uses: actions/checkout@v4
-# with:
-# path: "./dubbo-spi-extensions"
-# - uses: actions/checkout@v4
-# with:
-# repository: 'apache/dubbo-test-tools'
-# ref: main
-# path: "./dubbo-test-tools"
-# - name: "Set up JDK 21"
-# uses: actions/setup-java@v4
-# with:
-# distribution: 'zulu'
-# java-version: 21
-# - name: Restore Maven local repository cache
-# uses: actions/cache@v4
-# with:
-# path: ~/.m2/repository
-# key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-# restore-keys: |
-# ${{ runner.os }}-maven-
-# ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-# - name: "Compile Dubbo-SPI-Extensions (Linux)"
-# run: |
-# cd ${{ github.workspace }}/dubbo-spi-extensions
-# ./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"
-# 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-spi-extensions
-# - 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@v4
-# with:
-# name: "error-inspection-result"
-# path: ${{ github.workspace
}}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt
diff --git a/.github/workflows/build-and-test-scheduled-main.yml
b/.github/workflows/build-and-test-scheduled-main.yml
deleted file mode 100644
index ac1c9a79..00000000
--- a/.github/workflows/build-and-test-scheduled-main.yml
+++ /dev/null
@@ -1,331 +0,0 @@
-name: Build and Test Scheduled On master
-
-on:
- schedule:
- - cron: '0 0/6 * * *'
- workflow_dispatch:
-
-permissions:
- contents: read
-
-env:
- FORK_COUNT: 2
- FAIL_FAST: 0
- SHOW_ERROR_DETAIL: 1
- #multi-version size limit
- VERSIONS_LIMIT: 4
- JACOCO_ENABLE: true
- CANDIDATE_VERSIONS: '
- spring.version:5.3.24;
- spring-boot.version:2.7.6;
- '
-
-jobs:
- # Check ASF License
- check-license:
- name: "Check License"
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- with:
- ref: 'master'
- - name: Check License
- uses: apache/[email protected]
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- - name: "Set up JDK 17"
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 17
- - name: Restore Maven local repository cache
- uses: actions/cache@v4
- with:
- path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- restore-keys: |
- ${{ runner.os }}-maven-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - name: Check Dependencies' License
- uses:
apache/skywalking-eyes/dependency@e1a02359b239bd28de3f6d35fdc870250fa513d5
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- config: .licenserc.yaml
- mode: check
- # Build dubbo-build-tool
- build-tools:
- name: "Build-tools"
- needs: check-license
- 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:
- repository: 'apache/dubbo'
- ref: '3.2'
- path: dubbo
- - name: "Set up JDK 17"
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 17
- - uses: actions/cache@v4
- name: "Cache local Maven repository"
- with:
- path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- restore-keys: |
- ${{ runner.os }}-maven-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - name: "Build tools"
- run: |
- cd ./dubbo
- ./mvnw --batch-mode -U -e --no-transfer-progress install -pl
dubbo-build-tools -am -DskipTests=true
- # Build from source code
- build-source:
- name: "Build Dubbo-SPI-Extensions"
- needs: [check-license, build-tools]
- runs-on: ubuntu-latest
- # output dubbo-spi-extensions version to others jobs
- outputs:
- version: ${{ steps.dubbo-spi-extensions-version.outputs.version }}
- steps:
- - uses: actions/checkout@v4
- with:
- ref: "master"
- path: dubbo-spi-extensions
- - uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 17
- - 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-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - name: "Compile Dubbo-SPI-Extensions (Linux)"
- run: |
- cd ./dubbo-spi-extensions
- ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress
--fail-fast -T 2C clean compile -DskipIntegrationTests=true
-Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true
-Dmaven.javadoc.skip=true
- - name: "Build Dubbo-SPI-Extensions with Maven"
- run: |
- cd ./dubbo-spi-extensions
- ./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 class result"
- run: |
- shopt -s globstar
- zip ${{ github.workspace }}/class.zip **/target/classes/* -r
- - name: "Upload class result"
- uses: actions/upload-artifact@v4
- with:
- name: "class-file"
- path: ${{ github.workspace }}/class.zip
- - name: "Pack checkstyle file if failure"
- if: failure()
- run: zip ${{ github.workspace }}/checkstyle.zip *checkstyle* -r
- - name: "Upload checkstyle file if failure"
- if: failure()
- uses: actions/upload-artifact@v4
- with:
- name: "checkstyle-file"
- path: ${{ github.workspace }}/checkstyle.zip
- - name: "Calculate Dubbo-SPI-Extensions Version"
- id: dubbo-spi-extensions-version
- run: |
- REVISION=`awk
'/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print
$1;exit;}' ./dubbo-spi-extensions/pom.xml`
- echo "version=$REVISION" >> $GITHUB_OUTPUT
- echo "dubbo-spi-extensions version: $REVISION"
- # Download dependencies Prepare for unit test
- unit-test-prepare:
- name: "Preparation for Unit Test"
- needs: [check-license]
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [ ubuntu-latest, windows-latest ]
- env:
- ZOOKEEPER_VERSION: 3.6.3
- steps:
- - uses: actions/cache@v4
- 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 }}-${{ 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"
- 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:
- path: ${{ github.workspace }}/.tmp/rsa
- key: secret-rsa-${{ runner.os }}-${{ github.run_id }}
- - name: "Create Secret"
- run: |
- mkdir -p ${{ github.workspace }}/.tmp/rsa
- cd ${{ github.workspace }}/.tmp/rsa
- openssl genrsa -out rsa_private.pem 1024
- openssl rsa -in rsa_private.pem -pubout -out rsa_public.pem
- echo "Current workflow run id: ${{ github.run_id }}"
- echo "Start Print Rsa Public Key ---"
- cat rsa_public.pem
- echo "--- End Print Rsa Public Key"
- # Start unit test
- unit-test:
- needs: [check-license, build-source, unit-test-prepare]
- name: "Unit Test ${{ matrix.os }} with JDK ${{ matrix.jdk }}"
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [ ubuntu-latest, windows-latest ]
- jdk: [17]
- 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
- - name: "Set up JDK ${{ matrix.jdk }}"
- uses: actions/setup-java@v4
- with:
- distribution: 'zulu'
- java-version: 17
- - 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-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- - uses: actions/cache@v4
- 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@v4
- 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 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
-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-${{ matrix.os }}-${{ matrix.jdk }}
- path: "**/target/site/**/jacoco.xml"
- - name: "Upload coverage to Codecov"
- uses: codecov/codecov-action@v4
-
-# error-code-inspecting:
-# needs: [check-license, build-tools]
-# runs-on: ubuntu-latest
-# steps:
-# - uses: actions/checkout@v4
-# with:
-# path: "./dubbo-spi-extensions"
-# - uses: actions/checkout@v4
-# with:
-# repository: 'apache/dubbo-test-tools'
-# ref: main
-# path: "./dubbo-test-tools"
-# - name: "Set up JDK 21"
-# uses: actions/setup-java@v4
-# with:
-# distribution: 'zulu'
-# java-version: 21
-# - name: Restore Maven local repository cache
-# uses: actions/cache@v4
-# with:
-# path: ~/.m2/repository
-# key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-# restore-keys: |
-# ${{ runner.os }}-maven-
-# ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-# - name: "Compile Dubbo-SPI-Extensions (Linux)"
-# run: |
-# cd ${{ github.workspace }}/dubbo-spi-extensions
-# ./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"
-# 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-spi-extensions
-# - 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@v4
-# with:
-# name: "error-inspection-result"
-# path: ${{ github.workspace
}}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt
diff --git a/.github/workflows/conformance.yml
b/.github/workflows/conformance.yml
index c0afb953..d91e5303 100644
--- a/.github/workflows/conformance.yml
+++ b/.github/workflows/conformance.yml
@@ -1,108 +1,131 @@
-#name: Extensions Conformance Tests
-#
-#on:
-# pull_request:
-# paths:
-# - "**"
-# - "!**/*.md"
-# - "!docs/**"
-# push:
-# paths:
-# - '**'
-# - "!**/*.md"
-# - "!docs/**"
-#
-#env:
-# FORK_COUNT: 2
-# FAIL_FAST: 0
-# SHOW_ERROR_DETAIL: 1
-# BUILD_OPTS: --batch-mode --no-snapshot-updates --no-transfer-progress
-Dmaven.wagon.http.retryHandler.count=3 clean package
dependency:copy-dependencies -DskipTests
-#
-#jobs:
-# build-extensions:
-# name: "Build Extensions"
-# runs-on: ubuntu-latest
-# steps:
-# - uses: actions/checkout@v4
-# with:
-# path: dubbo-spi-extensions
-# - uses: actions/checkout@v4
-# with:
-# repository: 'apache/dubbo'
-# ref: '3.0'
-# path: dubbo
-# - name: Set up JDK 8
-# uses: actions/setup-java@v4
-# with:
-# distribution: 'zulu'
-# java-version: 8
-# - uses: actions/cache@v4
-# name: "Cache local Maven repository"
-# with:
-# path: ~/.m2/repository
-# key: ${{ runner.os }}-extensions-maven${{ hashFiles('**/pom.xml') }}
-# restore-keys: |
-# ${{ runner.os }}-extensions-maven
-# - name: "Build tools"
-# run: |
-# cd ./dubbo
-# ./mvnw --batch-mode -U -e --no-transfer-progress install -pl
dubbo-build-tools -am
-# - name: "Build with Maven"
-# run: |
-# cd ./dubbo-spi-extensions
-# ./mvnw --batch-mode -U -e --no-transfer-progress install -am
-#
-#
-# testjob:
-# needs: [ build-extensions ]
-# name: 'Conformance Test'
-# runs-on: ubuntu-latest
-# env:
-# JAVA_VER: ${{matrix.java}}
-# strategy:
-# fail-fast: false
-# matrix:
-# # use the unsafe only run on the jdk8
-# java: [ 17 ]
-# #testjob id list MUST match 'JOB_COUNT' of 'prepare_test'
-# job_id: [ 1,2,3 ]
-# steps:
-# - uses: actions/checkout@v4
-# - name: Set up JDK ${{matrix.java}}
-# uses: actions/setup-java@v4
-# with:
-# distribution: 'zulu'
-# java-version: ${{matrix.java}}
-# - name: Cache local Maven repository
-# uses: actions/cache@v4
-# with:
-# path: ~/.m2/repository
-# key: ${{ runner.os }}-extensions-maven${{ hashFiles('**/pom.xml') }}
-# restore-keys: |
-# ${{ runner.os }}-extensions-maven
-# - name: Download test list
-# uses: actions/download-artifact@v4
-# with:
-# name: test-list
-# path: test/jobs/
-# - name: Build test image
-# run: |
-# cd test && bash ./build-test-image.sh
-# - name: Run tests
-# run: cd test && bash ./run-tests.sh
-# - name: Upload log if test failed
-# if: failure()
-# uses: actions/upload-artifact@v4
-# with:
-# name: test-log-${{matrix.java}}-${{matrix.job_id}}
-# path: "**/test/scenarios/**/logs/*"
-# - name: Upload test result
-# if: always()
-# uses: actions/upload-artifact@v4
-# with:
-# name: test-result-${{matrix.job_id}}
-# path: test/jobs/*-result*
-#
+name: Extensions Conformance Tests
+
+on:
+ pull_request:
+ paths:
+ - "**"
+ - "!**/*.md"
+ - "!docs/**"
+ push:
+ paths:
+ - '**'
+ - "!**/*.md"
+ - "!docs/**"
+
+env:
+ FORK_COUNT: 2
+ FAIL_FAST: 0
+ SHOW_ERROR_DETAIL: 1
+ BUILD_OPTS: --batch-mode --no-snapshot-updates --no-transfer-progress
-Dmaven.wagon.http.retryHandler.count=3 clean package
dependency:copy-dependencies -DskipTests
+
+jobs:
+ build-extensions:
+ name: "Build Extensions"
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ dubbo-version:
+ - "3.0"
+ - "3.1"
+ - "3.2"
+ - "3.3"
+ - "3.4"
+ steps:
+ - name: Checkout Dubbo SPI Extensions
+ uses: actions/checkout@v4
+ with:
+ path: dubbo-spi-extensions
+
+ - name: Checkout Apache Dubbo
+ uses: actions/checkout@v4
+ with:
+ repository: apache/dubbo
+ ref: ${{ matrix.dubbo-version }}
+ path: dubbo
+ fetch-depth: 0
+
+
+ - name: Set up JDK 17
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 17
+
+ - name: Cache local Maven repository
+ uses: actions/cache@v4
+ id: maven-cache
+ with:
+ path: ~/.m2/repository
+ key: maven-${{ runner.os }}-${{ matrix.java }}-${{
hashFiles('**/pom.xml') }}
+ restore-keys: |
+ maven-${{ runner.os }}-${{ matrix.java }}-
+ maven-${{ runner.os }}-
+
+
+ - name: "Build with Maven"
+ run: |
+ cd ./dubbo-spi-extensions
+ ./mvnw --batch-mode -U -e --no-transfer-progress install -am
+
+
+
+ testjob:
+ needs: [ build-extensions ]
+ name: 'Conformance Test'
+ runs-on: ubuntu-latest
+ env:
+ JAVA_VER: ${{matrix.java}}
+ strategy:
+ fail-fast: false
+ matrix:
+ java: [ 17 ]
+ job_id: [ 1,2,3 ]
+ os: [ ubuntu-latest ]
+ steps:
+ - uses: actions/checkout@v4
+ - name: Set up JDK ${{matrix.java}}
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: ${{matrix.java}}
+
+ - name: "Cache local Maven repository"
+ id: maven-cache
+ uses: actions/cache@v4
+ with:
+ path: ~/.m2/repository
+ key: maven-${{ runner.os }}-${{ matrix.java }}-${{
hashFiles('**/pom.xml') }}
+ restore-keys: |
+ maven-${{ runner.os }}-${{ matrix.java }}-
+ maven-${{ runner.os }}-
+
+
+ # - name: Download test list
+ # uses: actions/download-artifact@v4
+ # with:
+ # name: test-list
+ # path: test/jobs/
+ - name: Build Test Image (if test folder exists)
+ if: ${{ hashFiles('test/build-test-image.sh') != '' }}
+ run: cd test && bash ./build-test-image.sh
+ - name: Run tests
+ run: |
+ for i in {1..2}; do
+ cd test && bash ./run-tests.sh && break || sleep 10;
+ done
+ - name: Upload log if test failed
+ if: failure()
+ uses: actions/upload-artifact@v4
+ with:
+ name: test-log-${{matrix.java}}-${{matrix.job_id}}
+ path: "**/test/scenarios/**/logs/*"
+ # - name: Upload test result
+ # if: always()
+ # uses: actions/upload-artifact@v4
+ # with:
+ # name: test-result-${{matrix.job_id}}
+ # path: test/jobs/*-result*
+
# merge_test:
# needs: [ testjob ]
# name: 'Merge Test Result (Java${{matrix.java}})'
@@ -110,7 +133,7 @@
# strategy:
# fail-fast: false
# matrix:
-# java: [ 8 ]
+# java: [ 17 ]
# env:
# JAVA_VER: ${{matrix.java}}
# steps:
@@ -122,27 +145,25 @@
# pattern: test-result-*
# delete-merged: true
-# test_result:
-# needs: [ testjob ]
-# name: 'Test Result (Java${{matrix.java}})'
-# if: always()
-# runs-on: ubuntu-latest
-# strategy:
-# fail-fast: false
-# matrix:
-# java: [ 8 ]
-# env:
-# JAVA_VER: ${{matrix.java}}
-# steps:
-# - uses: actions/checkout@v4
-# - name: Download test result
-# uses: actions/download-artifact@v4
-# with:
-# path: test/jobs/
-# - name: Merge test result - java ${{matrix.java}}
-# run: ./test/scripts/merge-test-results.sh
-# - name: Upload merge test result
-# uses: actions/upload-artifact@v4
-# with:
-# name: merge-test-result-${{matrix.java}}
-# path: test/jobs/*-result*
+ test_result:
+ needs: [ testjob ]
+ name: 'Test Result (Java${{matrix.java}})'
+ if: always()
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ java: [ 17 ]
+ env:
+ JAVA_VER: ${{matrix.java}}
+ steps:
+ - uses: actions/checkout@v4
+ - name: Download test result
+ uses: actions/download-artifact@v4
+ with:
+ path: test/jobs/
+ - name: Upload merge test result
+ uses: actions/upload-artifact@v4
+ with:
+ name: merge-test-result-${{matrix.java}}
+ path: test/jobs/*-result*
diff --git a/.github/workflows/release-test.yml
b/.github/workflows/release-test.yml
index af20e26b..03482940 100644
--- a/.github/workflows/release-test.yml
+++ b/.github/workflows/release-test.yml
@@ -41,10 +41,11 @@ jobs:
uses: actions/cache@v4
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ key: maven-${{ runner.os }}-${{ hashFiles('**/pom.xml') }}
restore-keys: |
- ${{ runner.os }}-maven-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ maven-${{ runner.os }}-${{ matrix.dubbo-version }}-
+ maven-${{ runner.os }}-maven-
+ maven-${{ runner.os }}-
- name: Check Dependencies' License
uses:
apache/skywalking-eyes/dependency@e1a02359b239bd28de3f6d35fdc870250fa513d5
env:
@@ -58,38 +59,46 @@ jobs:
needs: check-license
runs-on: ${{ matrix.os }}
strategy:
+ fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest ]
- fail-fast: false
+ dubbo-version:
+ - "3.0"
+ - "3.1"
+ - "3.2"
+ - "3.3"
+ - "master"
outputs:
- cache-key: ${{ steps.dubbo-build-tools.cache }}
+ cache-key: ${{ steps.maven-cache.outputs.cache-hit }}
steps:
- name: Support long paths on Windows
- if: ${{ startsWith( matrix.os, 'windows') }}
+ if: ${{ startsWith(matrix.os, 'windows') }}
run: git config --system core.longpaths true
- - uses: actions/checkout@v4
- name: build tools
+
+ - name: Checkout Dubbo Code
+ uses: actions/checkout@v4
with:
repository: 'apache/dubbo'
- ref: '3.2'
+ ref: ${{ matrix.dubbo-version }}
path: dubbo
+
- name: "Set up JDK 17"
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 17
- - uses: actions/cache@v4
- name: "Cache local Maven repository"
+
+ - name: "Cache local Maven repository"
+ id: maven-cache
+ uses: actions/cache@v4
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ key: maven-${{ runner.os }}-dubbo-${{ matrix.dubbo-version }}-${{
hashFiles('**/pom.xml') }}
restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- ${{ runner.os }}-maven-
- - name: "Build tools"
- run: |
- cd ./dubbo
- ./mvnw --batch-mode -U -e --no-transfer-progress install -pl
dubbo-build-tools -am -DskipTests=true
+ maven-${{ runner.os }}-dubbo-${{ matrix.dubbo-version }}-
+ maven-${{ runner.os }}-dubbo-
+ maven-${{ runner.os }}-
+
# Build from source code
build-source:
name: "Build Dubbo-SPI-Extensions"
@@ -113,10 +122,11 @@ jobs:
name: "Cache local Maven repository"
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{
github.run_id }}
+ key: maven-${{ runner.os }}-${{ hashFiles('**/pom.xml') }}
restore-keys: |
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- ${{ runner.os }}-maven-
+ maven-${{ runner.os }}-${{ matrix.dubbo-version }}-
+ maven-${{ runner.os }}-maven-
+ maven-${{ runner.os }}-
- name: "Compile Dubbo-SPI-Extensions (Linux)"
run: |
cd ./dubbo-spi-extensions
@@ -248,10 +258,11 @@ jobs:
name: "Cache local Maven repository"
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{
github.run_id }}
+ key: maven-${{ runner.os }}-${{ hashFiles('**/pom.xml') }}
restore-keys: |
- ${{ runner.os }}-maven-
- ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ maven-${{ runner.os }}-${{ matrix.dubbo-version }}-
+ maven-${{ runner.os }}-maven-
+ maven-${{ runner.os }}-
- uses: actions/cache@v4
name: "Cache zookeeper binary archive"
id: "cache-zookeeper"