Build and Test Scheduled On 3.3 #1545
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
ALL_REMOTE_VERSION: true | |
CANDIDATE_VERSIONS: ' | |
spring.version:5.3.24; | |
spring-boot.version:2.7.6; | |
' | |
jobs: | |
license: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: "3.3" | |
- name: Check License | |
uses: apache/skywalking-eyes@main | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
build-source: | |
runs-on: ubuntu-latest | |
outputs: | |
version: ${{ steps.dubbo-version.outputs.version }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: "3.3" | |
path: dubbo | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 21 | |
- uses: actions/cache@v3 | |
name: "Cache local Maven repository" | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }} | |
restore-keys: | | |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
${{ runner.os }}-maven- | |
- name: "Dubbo cache" | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository/org/apache/dubbo | |
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }} | |
- name: "Build Dubbo with Maven" | |
run: | | |
cd ./dubbo | |
./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean source:jar install -Pjacoco,checkstyle -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -Dmaven.test.skip=true -Dmaven.test.skip.exec=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper | |
- name: "Pack checkstyle file if failure" | |
if: failure() | |
run: 7z a ${{ 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 Version" | |
id: dubbo-version | |
run: | | |
REVISION=`awk '/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print $1;exit;}' ./dubbo/pom.xml` | |
echo "version=$REVISION" >> $GITHUB_OUTPUT | |
echo "dubbo version: $REVISION" | |
unit-test-prepare: | |
name: " Preparation for Unit Test On ${{ matrix.os }}" | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, windows-latest ] | |
env: | |
ZOOKEEPER_VERSION: 3.7.2 | |
steps: | |
- uses: actions/cache@v3 | |
name: "Cache zookeeper binary archive" | |
id: "cache-zookeeper" | |
with: | |
path: ${{ github.workspace }}/.tmp/zookeeper | |
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }} | |
restore-keys: | | |
zookeeper-${{ runner.os }}-${{ 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 | |
unit-test: | |
needs: [build-source, unit-test-prepare] | |
name: "Unit Test On ${{ matrix.os }} (JDK: ${{ matrix.jdk }})" | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, windows-latest ] | |
jdk: [ 8, 11, 17, 21 ] | |
env: | |
DISABLE_FILE_SYSTEM_TEST: true | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: "3.3" | |
- name: "Set up JDK ${{ matrix.jdk }}" | |
uses: actions/setup-java@v1 | |
with: | |
java-version: ${{ matrix.jdk }} | |
- uses: actions/cache@v3 | |
name: "Cache local Maven repository" | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }} | |
restore-keys: | | |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
${{ runner.os }}-maven- | |
- uses: actions/cache@v3 | |
name: "Cache zookeeper binary archive" | |
id: "cache-zookeeper" | |
with: | |
path: ${{ github.workspace }}/.tmp/zookeeper | |
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }} | |
restore-keys: | | |
zookeeper-${{ runner.os }}- | |
- name: "Test with Maven with Integration Tests" | |
timeout-minutes: 70 | |
if: ${{ startsWith( matrix.os, 'ubuntu') }} | |
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false -DskipIntegrationTests=false -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper | |
- name: "Test with Maven without Integration Tests" | |
timeout-minutes: 90 | |
if: ${{ startsWith( matrix.os, 'windows') }} | |
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper" | |
unit-test-fastjson2: | |
needs: [build-source, unit-test-prepare] | |
name: "Unit Test On ${{ matrix.os }} (JDK: ${{ matrix.jdk }}, Serialization: fastjson2)" | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, windows-latest ] | |
jdk: [ 8, 11, 17, 21 ] | |
env: | |
DISABLE_FILE_SYSTEM_TEST: true | |
DUBBO_DEFAULT_SERIALIZATION: fastjson2 | |
MAVEN_SUREFIRE_ADD_OPENS: true | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Set up JDK ${{ matrix.jdk }}" | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: ${{ matrix.jdk }} | |
- uses: actions/cache@v3 | |
name: "Cache local Maven repository" | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }} | |
restore-keys: | | |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
${{ runner.os }}-maven- | |
- uses: actions/cache@v3 | |
name: "Cache zookeeper binary archive" | |
id: "cache-zookeeper" | |
with: | |
path: ${{ github.workspace }}/.tmp/zookeeper | |
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }} | |
restore-keys: | | |
zookeeper-${{ runner.os }}- | |
- name: "Test with Maven with Integration Tests on JDK 8" | |
timeout-minutes: 70 | |
if: ${{ startsWith( matrix.os, 'ubuntu') && matrix.jdk == '8' }} | |
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco,'!jdk15ge' -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false -DskipIntegrationTests=false -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper | |
- name: "Test with Maven without Integration Tests on JDK 8" | |
timeout-minutes: 90 | |
if: ${{ startsWith( matrix.os, 'windows') && matrix.jdk == '8' }} | |
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -P"jacoco,'!jdk15ge'" -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper" | |
- name: "Test with Maven with Integration Tests" | |
timeout-minutes: 70 | |
if: ${{ startsWith( matrix.os, 'ubuntu') && matrix.jdk != '8' }} | |
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco,jdk15ge-simple,'!jdk15ge' -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false -DskipIntegrationTests=false -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper | |
- name: "Test with Maven without Integration Tests" | |
timeout-minutes: 90 | |
if: ${{ startsWith( matrix.os, 'windows') && matrix.jdk != '8' }} | |
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -P"jacoco,jdk15ge-simple,'!jdk15ge'" -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper" | |
samples-test-prepare: | |
runs-on: ubuntu-latest | |
env: | |
JOB_COUNT: 5 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: 'apache/dubbo-samples' | |
ref: master | |
- name: "Prepare test list" | |
run: | | |
bash ./test/scripts/prepare-test.sh | |
- name: "Upload test list" | |
uses: actions/upload-artifact@v4 | |
with: | |
name: samples-test-list | |
path: test/jobs | |
samples-test-job: | |
needs: [build-source, samples-test-prepare] | |
name: "Samples Test on ubuntu-latest (JobId: ${{matrix.job_id}} JavaVer: ${{matrix.jdk}})" | |
runs-on: ubuntu-latest | |
timeout-minutes: 90 | |
env: | |
JAVA_VER: ${{matrix.jdk}} | |
TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt | |
strategy: | |
fail-fast: false | |
matrix: | |
jdk: [ 8, 11, 17, 21 ] | |
job_id: [1, 2, 3, 4, 5] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: 'apache/dubbo-samples' | |
ref: master | |
- name: "Cache local Maven repository" | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }} | |
restore-keys: | | |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
${{ runner.os }}-maven- | |
- name: "Restore Dubbo cache" | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository/org/apache/dubbo | |
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }} | |
restore-keys: | | |
${{ runner.os }}-dubbo-snapshot-${{ github.sha }} | |
${{ runner.os }}-dubbo-snapshot- | |
- name: "Download test list" | |
uses: actions/download-artifact@v4 | |
with: | |
name: samples-test-list | |
path: test/jobs/ | |
- name: "Set up JDK ${{matrix.jdk}}" | |
uses: actions/setup-java@v1 | |
with: | |
java-version: ${{matrix.jdk}} | |
- name: "Init Candidate Versions" | |
run: | | |
DUBBO_VERSION="${{needs.build-source.outputs.version}}" | |
CANDIDATE_VERSIONS="dubbo.version:$DUBBO_VERSION;compiler.version:$DUBBO_VERSION;$CANDIDATE_VERSIONS;dubbo.compiler.version:$DUBBO_VERSION" | |
echo "CANDIDATE_VERSIONS=$CANDIDATE_VERSIONS" >> $GITHUB_ENV | |
- name: "Build test image" | |
run: | | |
cd test && bash ./build-test-image.sh | |
- name: "Run tests" | |
run: cd test && bash ./run-tests.sh | |
- name: "Upload test result" | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: samples-test-result-${{matrix.job_id}} | |
path: test/jobs/*-result* | |
samples-test-result: | |
needs: [samples-test-job] | |
if: always() | |
runs-on: ubuntu-latest | |
env: | |
JAVA_VER: ${{matrix.jdk}} | |
strategy: | |
matrix: | |
jdk: [ 8, 11, 17, 21 ] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: 'apache/dubbo-samples' | |
ref: master | |
- name: "Download test result" | |
uses: actions/download-artifact@v4 | |
with: | |
name: samples-test-result-* | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
path: test/jobs/ | |
- name: "Merge test result" | |
run: ./test/scripts/merge-test-results.sh | |
integration-test-prepare: | |
runs-on: ubuntu-latest | |
env: | |
JOB_COUNT: 5 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: 'apache/dubbo-integration-cases' | |
ref: main | |
- name: "Prepare test list" | |
run: | | |
bash ./test/scripts/prepare-test.sh | |
- name: "Upload test list" | |
uses: actions/upload-artifact@v4 | |
with: | |
name: integration-test-list | |
path: test/jobs | |
integration-test-job: | |
needs: [build-source, integration-test-prepare] | |
name: "Integration Test on ubuntu-latest (JobId: ${{matrix.job_id}} JavaVer: ${{matrix.jdk}})" | |
runs-on: ubuntu-latest | |
timeout-minutes: 90 | |
env: | |
JAVA_VER: ${{matrix.jdk}} | |
TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt | |
strategy: | |
fail-fast: false | |
matrix: | |
jdk: [ 8, 11, 17, 21 ] | |
job_id: [1, 2, 3, 4, 5] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: 'apache/dubbo-integration-cases' | |
ref: main | |
- name: "Cache local Maven repository" | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }} | |
restore-keys: | | |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
${{ runner.os }}-maven- | |
- name: "Restore Dubbo cache" | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository/org/apache/dubbo | |
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }} | |
restore-keys: | | |
${{ runner.os }}-dubbo-snapshot-${{ github.sha }} | |
${{ runner.os }}-dubbo-snapshot- | |
- name: "Download test list" | |
uses: actions/download-artifact@v4 | |
with: | |
name: integration-test-list | |
path: test/jobs/ | |
- name: "Set up JDK ${{matrix.jdk}}" | |
uses: actions/setup-java@v1 | |
with: | |
java-version: ${{matrix.jdk}} | |
- name: "Init Candidate Versions" | |
run: | | |
DUBBO_VERSION="${{needs.build-source.outputs.version}}" | |
CANDIDATE_VERSIONS="dubbo.version:$DUBBO_VERSION;compiler.version:$DUBBO_VERSION;$CANDIDATE_VERSIONS;dubbo.compiler.version:$DUBBO_VERSION" | |
echo "CANDIDATE_VERSIONS=$CANDIDATE_VERSIONS" >> $GITHUB_ENV | |
- name: "Build test image" | |
run: | | |
cd test && bash ./build-test-image.sh | |
- name: "Run tests" | |
run: cd test && bash ./run-tests.sh | |
- name: "Upload test result" | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: integration-test-result-${{matrix.job_id}} | |
path: test/jobs/*-result* | |
integration-test-result: | |
needs: [integration-test-job] | |
if: always() | |
runs-on: ubuntu-latest | |
env: | |
JAVA_VER: ${{matrix.jdk}} | |
strategy: | |
matrix: | |
jdk: [ 8, 11, 17, 21 ] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: 'apache/dubbo-integration-cases' | |
ref: main | |
- name: "Download test result" | |
uses: actions/download-artifact@v4 | |
with: | |
name: integration-test-result-* | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
path: test/jobs/ | |
- name: "Merge test result" | |
run: ./test/scripts/merge-test-results.sh | |
error-code-inspecting: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: "3.3" | |
path: "./dubbo" | |
- 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: "Compile Dubbo (Linux)" | |
run: | | |
cd ${{ github.workspace }}/dubbo | |
./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean install -DskipTests=true -DskipIntegrationTests=true -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true -Dmaven.javadoc.skip=true | |
- name: "Run Error Code Inspecting" | |
env: | |
DUBBO_ECI_REPORT_AS_ERROR: true | |
run: | | |
cd ${{ github.workspace }}/dubbo-test-tools/dubbo-error-code-inspector | |
../mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C package exec:java -Ddubbo.eci.report-as-error=${DUBBO_ECI_REPORT_AS_ERROR} -Dmaven.test.skip=true -Dmaven.test.skip.exec=true -Ddubbo.eci.path=${{ github.workspace }}/dubbo | |
- name: "Upload error code inspection result" | |
# 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 | |
native-image-inspecting: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
path: "./dubbo" | |
- name: "Set up GraalVM environment" | |
uses: graalvm/setup-graalvm@v1 | |
with: | |
version: '22.3.0' | |
java-version: '17' | |
components: 'native-image' | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
native-image-job-reports: 'true' | |
- name: "Set up Zookeeper environment" | |
run: | | |
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz | |
tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz | |
mv apache-zookeeper-3.8.4-bin/conf/zoo_sample.cfg apache-zookeeper-3.8.4-bin/conf/zoo.cfg | |
apache-zookeeper-3.8.4-bin/bin/zkServer.sh start | |
- name: "Check environment" | |
run: | | |
java --version | |
native-image --version | |
- name: "Set current date as env variable" | |
run: echo "TODAY=$(date +'%Y%m%d')" >> $GITHUB_ENV | |
- name: "Restore local Maven repository cache" | |
uses: actions/cache/restore@v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ env.TODAY }} | |
restore-keys: | | |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
${{ runner.os }}-maven- | |
- name: "Compile Dubbo (Linux)" | |
run: | | |
cd ${{ github.workspace }}/dubbo | |
./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -P '!demo',skip-spotless -Dmaven.test.skip=true -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true | |
- name: "Checkout dubbo-samples repository" | |
uses: actions/checkout@v4 | |
with: | |
repository: 'apache/dubbo-samples' | |
ref: master | |
path: "./dubbo-samples" | |
- name: "Compile and run Dubbo native image demo" | |
run: | | |
MVNW="${{ github.workspace }}/dubbo-samples/mvnw ${{ env.MAVEN_ARGS }} -Dmaven.test.skip=true" | |
cd ${{ github.workspace }}/dubbo-samples/2-advanced/dubbo-samples-native-image/dubbo-samples-native-image-provider | |
$MVNW clean package -P native native:compile | |
nohup ./target/dubbo-samples-native-image-provider & | |
sleep 10 | |
curl \ | |
--header "Content-Type: application/json" \ | |
--data '{"name":"Dubbo"}' \ | |
http://localhost:50052/org.apache.dubbo.nativeimage.DemoService/sayHello/ |