Split unit test for 3.3 #1
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 for PR | |
on: [ push, pull_request, workflow_dispatch ] | |
permissions: | |
contents: read | |
env: | |
FORK_COUNT: 2 | |
FAIL_FAST: 0 | |
SHOW_ERROR_DETAIL: 1 | |
VERSIONS_LIMIT: 4 | |
JACOCO_ENABLE: true | |
CANDIDATE_VERSIONS: >- | |
spring.version:5.3.24; | |
spring-boot.version:2.7.6; | |
MAVEN_OPTS: >- | |
-XX:+UseG1GC | |
-XX:InitiatingHeapOccupancyPercent=45 | |
-XX:+UseStringDeduplication | |
-XX:-TieredCompilation | |
-XX:TieredStopAtLevel=1 | |
-Dmaven.javadoc.skip=true | |
-Dmaven.wagon.http.retryHandler.count=5 | |
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120 | |
MAVEN_ARGS: >- | |
-e | |
--batch-mode | |
--no-snapshot-updates | |
--no-transfer-progress | |
--fail-fast | |
jobs: | |
check-format: | |
name: Check if code needs formatting | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup maven | |
uses: actions/setup-java@v4 | |
with: | |
java-version: 21 | |
distribution: zulu | |
- name: Check if code aligns with code style | |
id: check | |
run: mvn ${{ env.MAVEN_ARGS }} --log-file mvn.log spotless:check | |
continue-on-error: true | |
- name: Upload checkstyle result | |
uses: actions/upload-artifact@v3 | |
with: | |
name: checkstyle-result | |
path: mvn.log | |
- name: Generate Summary for successful run | |
if: ${{ steps.check.outcome == 'success' }} | |
run: | | |
echo ":ballot_box_with_check: Kudos! No formatting issues found!" >> $GITHUB_STEP_SUMMARY | |
- name: Generate Summary for failed run | |
if: ${{ steps.check.outcome == 'failure' }} | |
run: | | |
echo "## :negative_squared_cross_mark: Formatting issues found!" >> $GITHUB_STEP_SUMMARY | |
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY | |
cat mvn.log | grep "ERROR" | sed 's/Check if code needs formatting Check if code aligns with code style [0-9A-Z:.-]\+//' | sed 's/\[ERROR] //' | head -n -11 >> $GITHUB_STEP_SUMMARY | |
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY | |
echo "Please run \`mvn spotless:apply\` to fix the formatting issues." >> $GITHUB_STEP_SUMMARY | |
- name: Fail if code needs formatting | |
if: ${{ steps.check.outcome == 'failure' }} | |
uses: actions/github-script@v7.0.1 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
script: | | |
core.setFailed("Formatting issues found!") | |
check-license: | |
needs: check-format | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Check License | |
uses: apache/skywalking-eyes@e1a02359b239bd28de3f6d35fdc870250fa513d5 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: zulu | |
java-version: 21 | |
- name: Compile Dubbo (Linux) | |
run: | | |
./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -Pskip-spotless -Dmaven.test.skip=true -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true | |
- name: Check Dependencies' License | |
uses: apache/skywalking-eyes/dependency@e1a02359b239bd28de3f6d35fdc870250fa513d5 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
config: .licenserc.yaml | |
mode: check | |
build-source: | |
name: Build Dubbo | |
needs: check-format | |
runs-on: ubuntu-latest | |
outputs: | |
version: ${{ steps.dubbo-version.outputs.version }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
path: dubbo | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: zulu | |
java-version: 21 | |
- name: Restore local maven repository cache | |
uses: actions/cache/restore@v4 | |
id: cache-maven-repository | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
- name: Restore common local maven repository cache | |
uses: actions/cache/restore@v4 | |
if: steps.cache-maven-repository.outputs.cache-hit != 'true' | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven- | |
- name: Clean dubbo cache | |
run: rm -rf ~/.m2/repository/org/apache/dubbo | |
- name: Build Dubbo with maven | |
run: | | |
cd ./dubbo | |
./mvnw ${{ env.MAVEN_ARGS }} clean install -Psources,'!demo',skip-spotless,checkstyle -Dmaven.test.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper | |
- name: Save dubbo cache | |
uses: actions/cache/save@v4 | |
with: | |
path: ~/.m2/repository/org/apache/dubbo | |
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }} | |
- name: Clean dubbo cache | |
run: rm -rf ~/.m2/repository/org/apache/dubbo | |
- name: Save local maven repository cache | |
uses: actions/cache/save@v4 | |
if: steps.cache-maven-repository.outputs.cache-hit != 'true' | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
- name: Pack class result | |
run: | | |
shopt -s globstar | |
zip ${{ github.workspace }}/class.zip **/target/classes/* -r | |
- name: Upload class result | |
uses: actions/upload-artifact@v3 | |
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 | |
uses: actions/upload-artifact@v3 | |
if: failure() | |
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 | |
needs: check-format | |
runs-on: ubuntu-latest | |
env: | |
JOB_COUNT: 3 | |
ZOOKEEPER_VERSION: 3.6.4 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Prepare test list | |
run: bash ./dubbo-test/scripts/split-modules.sh 3 '${{ github.workspace }}' | |
- name: Upload test list | |
uses: actions/upload-artifact@v3 | |
with: | |
name: unit-test-list | |
path: test/jobs | |
- name: Restore local zookeeper cache | |
uses: actions/cache/restore@v4 | |
id: cache-zookeeper | |
with: | |
path: ${{ github.workspace }}/.tmp/zookeeper | |
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }} | |
- name: Download zookeeper binary archive in Linux OS | |
if: steps.cache-zookeeper.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p ${{ github.workspace }}/.tmp/zookeeper | |
wget -c https://archive.apache.org/dist/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz || | |
wget -c https://apache.website-solution.net/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz || | |
wget -c http://apache.stu.edu.tw/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz || | |
wget -c http://ftp.jaist.ac.jp/pub/apache/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz || | |
wget -c http://apache.mirror.cdnetworks.com/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz || | |
wget -c http://mirror.apache-kr.org/apache/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz | |
echo "list the downloaded zookeeper binary archive" | |
ls -al ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz | |
- name: Save local zookeeper cache | |
uses: actions/cache/save@v4 | |
if: steps.cache-zookeeper.outputs.cache-hit != 'true' | |
with: | |
path: ${{ github.workspace }}/.tmp/zookeeper | |
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }} | |
unit-test-job: | |
name: Unit Test (Job-${{matrix.job_id}}) | |
needs: [ check-format, build-source, unit-test-prepare ] | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
env: | |
ZOOKEEPER_VERSION: 3.6.4 | |
strategy: | |
fail-fast: false | |
matrix: | |
job_id: [ 1, 2, 3 ] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: zulu | |
java-version: 21 | |
- name: Restore local maven repository | |
uses: actions/cache/restore@v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Restore Dubbo cache | |
uses: actions/cache/restore@v4 | |
with: | |
path: ~/.m2/repository/org/apache/dubbo | |
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }} | |
- name: Cache zookeeper binary archive | |
uses: actions/cache@v4 | |
id: cache-zookeeper | |
with: | |
path: ${{ github.workspace }}/.tmp/zookeeper | |
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }} | |
restore-keys: | | |
zookeeper-${{ runner.os }}- | |
- name: Download test list | |
uses: actions/download-artifact@v3 | |
with: | |
name: unit-test-list | |
path: test/jobs/ | |
- name: Test with maven | |
timeout-minutes: 30 | |
run: | | |
set -o pipefail | |
modules=$(cat test/jobs/test_modules_${{ matrix.job_id }}.txt) | |
./mvnw ${{ env.MAVEN_ARGS }} clean test verify -Pjacoco,jdk15ge-simple,'!jdk15ge','!demo',skip-spotless,jacoco089 -pl "$modules" -DtrimStackTrace=false -Dmaven.test.skip=false -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false -Dflatten.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper 2>&1 | tee >(grep -n -B 1 -A 200 "FAILURE! -- in" > test_errors.log) | |
- name: Print test error log | |
if: failure() | |
run: cat test_errors.log | |
- name: Upload coverage result | |
uses: actions/upload-artifact@v3 | |
with: | |
name: unit-jacoco-result | |
path: '**/target/site/**/jacoco.xml' | |
samples-test-prepare: | |
name: Preparation for Sample Test | |
needs: check-format | |
runs-on: ubuntu-latest | |
env: | |
JOB_COUNT: 3 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
repository: oxsean/dubbo-samples | |
ref: master | |
- name: Prepare test list | |
run: bash ./test/scripts/prepare-test.sh | |
- name: Upload test list | |
uses: actions/upload-artifact@v3 | |
with: | |
name: samples-test-list | |
path: test/jobs | |
samples-test-job: | |
name: Samples Test (Job-${{matrix.job_id}}) | |
needs: [ check-format, build-source, samples-test-prepare ] | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
env: | |
JAVA_VER: 8 | |
TEST_CASE_FILE: jobs/testjob_${{ matrix.job_id }}.txt | |
strategy: | |
fail-fast: false | |
matrix: | |
job_id: [ 1, 2, 3 ] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
repository: oxsean/dubbo-samples | |
ref: master | |
- name: Restore local maven repository cache | |
uses: actions/cache/restore@v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Restore Dubbo cache | |
uses: actions/cache/restore@v4 | |
with: | |
path: ~/.m2/repository/org/apache/dubbo | |
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }} | |
- name: Download test list | |
uses: actions/download-artifact@v3 | |
with: | |
name: samples-test-list | |
path: test/jobs/ | |
- name: Set up JDK 8 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: zulu | |
java-version: 8 | |
- 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: merge jacoco result | |
run: cd test/dubbo-test-jacoco-merger && mvn ${{ env.MAVEN_ARGS }} clean compile exec:java -Dexec.mainClass="org.apache.dubbo.test.JacocoMerge" -Dexec.args="${{ github.workspace }}" | |
- name: Upload jacoco | |
uses: actions/upload-artifact@v3 | |
with: | |
name: samples-jacoco-result | |
path: target/jacoco*.exec | |
- name: Upload test result | |
uses: actions/upload-artifact@v3 | |
with: | |
name: samples-test-result | |
path: test/jobs/*-result* | |
samples-test-result: | |
needs: [ check-format, samples-test-job ] | |
runs-on: ubuntu-latest | |
env: | |
JAVA_VER: 8 | |
steps: | |
- name: Checkout samples code | |
uses: actions/checkout@v4 | |
with: | |
repository: oxsean/dubbo-samples | |
ref: master | |
- name: Download test result | |
uses: actions/download-artifact@v3 | |
with: | |
name: samples-test-result | |
path: test/jobs/ | |
- name: Merge test result | |
run: ./test/scripts/merge-test-results.sh | |
integration-test-prepare: | |
name: Preparation for Integration Test | |
needs: check-format | |
runs-on: ubuntu-latest | |
env: | |
JOB_COUNT: 5 | |
steps: | |
- name: Checkout integration code | |
uses: actions/checkout@v4 | |
with: | |
repository: oxsean/dubbo-integration-cases | |
ref: main | |
- name: Prepare test list | |
run: bash ./test/scripts/prepare-test.sh | |
- name: Upload test list | |
uses: actions/upload-artifact@v3 | |
with: | |
name: integration-test-list | |
path: test/jobs | |
integration-test-job: | |
name: Integration Test (Job-${{matrix.job_id}}) | |
needs: [ check-format, build-source, integration-test-prepare ] | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
env: | |
JAVA_VER: 8 | |
TEST_CASE_FILE: jobs/testjob_${{ matrix.job_id }}.txt | |
strategy: | |
fail-fast: false | |
matrix: | |
job_id: [ 1, 2, 3, 4, 5 ] | |
steps: | |
- name: Checkout integration code | |
uses: actions/checkout@v4 | |
with: | |
repository: oxsean/dubbo-integration-cases | |
ref: main | |
- name: Restore local maven repository cache | |
uses: actions/cache/restore@v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Restore Dubbo cache | |
uses: actions/cache/restore@v4 | |
with: | |
path: ~/.m2/repository/org/apache/dubbo | |
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }} | |
- name: Download test list | |
uses: actions/download-artifact@v3 | |
with: | |
name: integration-test-list | |
path: test/jobs/ | |
- name: Set up JDK 8 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: zulu | |
java-version: 8 | |
- 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: merge jacoco result | |
run: cd test/dubbo-test-jacoco-merger && mvn ${{ env.MAVEN_ARGS }} clean compile exec:java -Dexec.mainClass="org.apache.dubbo.test.JacocoMerge" -Dexec.args="${{ github.workspace }}" | |
- name: Upload jacoco | |
uses: actions/upload-artifact@v3 | |
with: | |
name: integration-jacoco-result | |
path: target/jacoco*.exec | |
- name: Upload test result | |
uses: actions/upload-artifact@v3 | |
with: | |
name: integration-test-result | |
path: test/jobs/*-result* | |
integration-test-result: | |
needs: [ check-format, integration-test-job ] | |
runs-on: ubuntu-latest | |
env: | |
JAVA_VER: 8 | |
steps: | |
- name: Checkout integration code | |
uses: actions/checkout@v4 | |
with: | |
repository: oxsean/dubbo-integration-cases | |
ref: main | |
- name: Download test result | |
uses: actions/download-artifact@v3 | |
with: | |
name: integration-test-result | |
path: test/jobs/ | |
- name: Merge test result | |
run: ./test/scripts/merge-test-results.sh | |
jacoco-result-merge: | |
runs-on: ubuntu-latest | |
needs: [ check-format, unit-test-job, samples-test-result, integration-test-result ] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
path: ./dubbo | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
repository: oxsean/dubbo-samples | |
path: ./dubbo-samples | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
repository: oxsean/dubbo-integration-cases | |
path: ./dubbo-integration-cases | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: zulu | |
java-version: 21 | |
- name: Restore class result | |
uses: actions/download-artifact@v3 | |
with: | |
name: class-file | |
path: ${{ github.workspace }} | |
- name: Unpack class result | |
run: | | |
cd ${{ github.workspace }}/dubbo | |
unzip -o ${{ github.workspace }}/class.zip | |
- name: Restore samples jacoco exec | |
uses: actions/download-artifact@v3 | |
with: | |
name: samples-jacoco-result | |
path: dubbo-samples/target/ | |
- name: Restore integration jacoco exec | |
uses: actions/download-artifact@v3 | |
with: | |
name: integration-jacoco-result | |
path: dubbo-integration-cases/target/ | |
- name: Merge samples jacoco result | |
run: | | |
cd ${{ github.workspace }}/dubbo-samples/test/dubbo-test-jacoco-merger | |
mvn ${{ env.MAVEN_ARGS }} clean compile exec:java -Dexec.mainClass="org.apache.dubbo.test.JacocoReport" -Dexec.args="${{ github.workspace }}/dubbo-samples ${{ github.workspace }}/dubbo" | |
- name: Merge integration jacoco result | |
run: | | |
cd ${{ github.workspace }}/dubbo-integration-cases/test/dubbo-test-jacoco-merger | |
mvn ${{ env.MAVEN_ARGS }} clean compile exec:java -Dexec.mainClass="org.apache.dubbo.test.JacocoReport" -Dexec.args="${{ github.workspace }}/dubbo-integration-cases ${{ github.workspace }}/dubbo" | |
- name: Restore coverage result | |
uses: actions/download-artifact@v3 | |
with: | |
name: unit-jacoco-result | |
path: dubbo/ | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
verbose: true | |
error-code-inspecting: | |
needs: check-format | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
path: ./dubbo | |
- name: Checkout code | |
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 local maven repository cache | |
uses: actions/cache/restore@v4 | |
id: cache-maven-repository | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Compile Dubbo (Linux) | |
run: | | |
cd ${{ github.workspace }}/dubbo | |
./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -P '!demo',skip-spotless -Dmaven.test.skip=true -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true | |
- name: Run Error Code Inspecting | |
env: | |
DUBBO_ECI_REPORT_AS_ERROR: true | |
run: | | |
cd ${{ github.workspace }}/dubbo-test-tools/dubbo-error-code-inspector | |
../mvnw ${{ env.MAVEN_ARGS }} -T 2C package exec:java -Ddubbo.eci.report-as-error=${DUBBO_ECI_REPORT_AS_ERROR} -Dmaven.test.skip=true -Ddubbo.eci.path=${{ github.workspace }}/dubbo | |
- name: Upload error code inspection result | |
# always() should not be used here, since we don't need to handle the 'canceled' situation. | |
if: ${{ success() || failure() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: error-inspection-result | |
path: ${{ github.workspace }}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt | |
native-image-inspecting: | |
needs: check-format | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
path: ./dubbo | |
- name: Setup 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: Setup Zookeeper environment | |
run: | | |
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz | |
tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz | |
mv apache-zookeeper-3.8.4-bin/conf/zoo_sample.cfg apache-zookeeper-3.8.4-bin/conf/zoo.cfg | |
apache-zookeeper-3.8.4-bin/bin/zkServer.sh start | |
- name: Check environment | |
run: | | |
java --version | |
native-image --version | |
- name: Restore local maven repository cache | |
uses: actions/cache/restore@v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Compile Dubbo (Linux) | |
run: | | |
cd ${{ github.workspace }}/dubbo | |
./mvnw ${{ env.MAVEN_ARGS }} -T 2C clean install -P '!demo',skip-spotless -Dmaven.test.skip=true -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true | |
- name: Compile and run Dubbo demo for native (Linux) | |
run: | | |
cd ${{ github.workspace }}/dubbo/dubbo-demo/dubbo-demo-native/dubbo-demo-native-interface | |
MVNW="${{ github.workspace }}/dubbo/mvnw ${{ env.MAVEN_ARGS }} -T 2C -Dmaven.test.skip=true" | |
$MVNW clean install | |
cd ../dubbo-demo-native-provider | |
$MVNW clean package -P native native:compile | |
nohup ./target/dubbo-demo-native-provider & | |
cd ../dubbo-demo-native-consumer | |
$MVNW clean package -P native native:compile | |
./target/dubbo-demo-native-consumer |