| 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 |
| ALL_REMOTE_VERSION: true |
| 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 |
| - 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 }} -T 2C clean install -Psources,'!demo',skip-spotless,checkstyle -Dmaven.test.skip=true |
| - name: Save dubbo cache |
| uses: actions/cache/save@v4 |
| with: |
| path: ~/.m2/repository/org/apache/dubbo |
| key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }} |
| - name: Clean dubbo cache |
| run: rm -rf ~/.m2/repository/org/apache/dubbo |
| - name: Save local maven repository cache |
| uses: actions/cache/save@v4 |
| if: steps.cache-maven-repository.outputs.cache-hit != 'true' |
| with: |
| path: ~/.m2/repository |
| key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} |
| - name: Pack 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 ${{ env.JOB_COUNT }} '${{ 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 on ${{ matrix.os }} |
| if: steps.cache-zookeeper.outputs.cache-hit != 'true' |
| env: |
| MIRRORS: >- |
| https://archive.apache.org/dist |
| https://apache.website-solution.net |
| http://apache.stu.edu.tw |
| http://ftp.jaist.ac.jp/pub/apache |
| http://apache.mirror.cdnetworks.com |
| http://mirror.apache-kr.org/apache |
| run: | |
| cd '${{ github.workspace }}' |
| mkdir -p .tmp/zookeeper |
| for mirror in $MIRRORS; do |
| curl -sL "$mirror/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz" -o .tmp/zookeeper/apache-zookeeper-bin.tar.gz && break |
| done |
| echo "list the downloaded zookeeper binary archive" |
| ls -al .tmp/zookeeper/apache-zookeeper-bin.tar.gz |
| - name: Save local zookeeper cache |
| uses: actions/cache/save@v4 |
| if: steps.cache-zookeeper.outputs.cache-hit != 'true' |
| with: |
| path: ${{ github.workspace }}/.tmp/zookeeper |
| key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }} |
| unit-test-job: |
| name: Unit Test (Job-${{matrix.job_id}}) |
| needs: [ check-format, build-source, unit-test-prepare ] |
| runs-on: ${{ matrix.os }}-latest |
| timeout-minutes: 60 |
| 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: 60 |
| run: | |
| set -o pipefail |
| modules=$(cat test/jobs/test_modules_${{ matrix.job_id }}.txt) |
| ./mvnw ${{ env.MAVEN_ARGS }} clean test verify -Pjdk15ge-simple,'!jdk15ge','!demo',skip-spotless,jacoco,jacoco089 -pl "$modules" -DtrimStackTrace=false -Dmaven.test.skip=false -Drat.skip=false -Dflatten.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper 2>&1 | tee >(grep -n -B 5 -A 200 "FAILURE! -- in" > test_errors.log) |
| - name: Print test error log |
| if: failure() |
| run: cat test_errors.log |
| - 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: 60 |
| 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: 60 |
| 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 |
| - 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 |
| - 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 |