diff --git a/.github/workflows/build-and-test-scheduled-3.3.yml b/.github/workflows/build-and-test-scheduled-3.3.yml index aca04d24025..6ef8bc25b27 100644 --- a/.github/workflows/build-and-test-scheduled-3.3.yml +++ b/.github/workflows/build-and-test-scheduled-3.3.yml @@ -122,7 +122,7 @@ jobs: name: Preparation for Unit Test on ${{ matrix.os }} runs-on: ${{ matrix.os }}-latest env: - JOB_COUNT: 2 + JOB_COUNT: 1 ZOOKEEPER_VERSION: 3.6.4 strategy: matrix: @@ -175,7 +175,7 @@ jobs: name: Unit Test (Job-${{matrix.job_id}}, Os-${{ matrix.os }}, Jdk-${{ matrix.jdk }}, Ser-${{ matrix.ser }}) needs: [ build-source, unit-test-prepare ] runs-on: ${{ matrix.os }}-latest - timeout-minutes: 60 + timeout-minutes: 120 env: ZOOKEEPER_VERSION: 3.6.4 DISABLE_FILE_SYSTEM_TEST: true @@ -187,7 +187,7 @@ jobs: os: [ ubuntu, windows ] jdk: [ 8, 11, 17, 21 ] ser: [ hessian2, fastjson2 ] - job_id: [ 1, 2 ] + job_id: [ 1 ] steps: - name: Checkout code uses: actions/checkout@v4 @@ -223,6 +223,11 @@ jobs: with: name: unit-test-list path: test/jobs/ + - name: Setup tmate session + uses: mxschmitt/action-tmate@v3 + if: ${{ github.event_name == 'workflow_dispatch' }} + with: + detached: true - name: Test with maven on ${{ matrix.os }} timeout-minutes: 60 run: | @@ -232,287 +237,3 @@ jobs: - name: Print test error log if: failure() run: cat test_errors.log - - samples-test-prepare: - name: Preparation for Sample Test - 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}}, Java-${{ matrix.jdk }}) - needs: [ build-source, samples-test-prepare ] - runs-on: ubuntu-latest - timeout-minutes: 60 - 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 ] - 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 ${{ matrix.jdk }} - uses: actions/setup-java@v4 - with: - distribution: zulu - 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 - uses: actions/upload-artifact@v3 - with: - name: samples-test-result-${{ matrix.jdk }} - path: test/jobs/*-result* - samples-test-result: - needs: [ samples-test-job ] - runs-on: ubuntu-latest - env: - JAVA_VER: ${{ matrix.jdk }} - strategy: - matrix: - jdk: [ 8, 11, 17, 21 ] - 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-${{ matrix.jdk }} - path: test/jobs/ - - name: Merge test result - run: ./test/scripts/merge-test-results.sh - - integration-test-prepare: - name: Preparation for Integration Test - runs-on: ubuntu-latest - env: - JOB_COUNT: 3 - 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 }}, Java-${{ matrix.jdk }}) - needs: [ build-source, integration-test-prepare ] - runs-on: ubuntu-latest - timeout-minutes: 60 - 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 ] - 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 ${{ matrix.jdk }} - uses: actions/setup-java@v4 - with: - distribution: zulu - 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 - uses: actions/upload-artifact@v3 - with: - name: integration-test-result-${{ matrix.jdk }} - path: test/jobs/*-result* - integration-test-result: - needs: [ integration-test-job ] - runs-on: ubuntu-latest - env: - JAVA_VER: ${{ matrix.jdk }} - strategy: - matrix: - jdk: [ 8, 11, 17, 21 ] - 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-${{ matrix.jdk }} - path: test/jobs/ - - name: Merge test result - run: ./test/scripts/merge-test-results.sh - - error-code-inspecting: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - ref: ${{ env.DUBBO_BRANCH }} - 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: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - ref: ${{ env.DUBBO_BRANCH }} - 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