| 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@v2 |
| with: |
| path: dubbo-spi-extensions |
| - uses: actions/checkout@v2 |
| with: |
| repository: 'apache/dubbo' |
| ref: '3.0' |
| path: dubbo |
| - name: Set up JDK 8 |
| uses: actions/setup-java@v1 |
| with: |
| java-version: 8 |
| - uses: actions/cache@v2 |
| 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 -DskipTests=true |
| - name: "Build with Maven" |
| run: | |
| cd ./dubbo-spi-extensions |
| ./mvnw --batch-mode -U -e --no-transfer-progress install -am -DskipTests=true |
| - name: "Build Scenarios" |
| run: | |
| cd ./dubbo-spi-extensions/test/scenarios |
| ../../mvnw --batch-mode -U -e --no-transfer-progress install -am -DskipTests=true |
| |
| prepare_test: |
| name: "Prepare Test" |
| runs-on: ubuntu-latest |
| env: |
| #'JOB_COUNT' MUST match 'job_id' list of 'testjob' |
| JOB_COUNT: 3 |
| steps: |
| - uses: actions/checkout@v1 |
| - name: Prepare test list |
| run: | |
| bash ./test/scripts/prepare-test.sh |
| - name: Upload test list |
| uses: actions/upload-artifact@v2 |
| with: |
| name: test-list |
| path: test/jobs |
| |
| testjob: |
| needs: [ prepare_test,build-extensions ] |
| name: 'Conformance Test' |
| runs-on: ubuntu-latest |
| env: |
| JAVA_VER: ${{matrix.java}} |
| strategy: |
| fail-fast: false |
| matrix: |
| java: [ 8,11 ] |
| #testjob id list MUST match 'JOB_COUNT' of 'prepare_test' |
| job_id: [ 1,2,3 ] |
| steps: |
| - uses: actions/checkout@v1 |
| - name: Set up JDK ${{matrix.java}} |
| uses: actions/setup-java@v1 |
| with: |
| java-version: ${{matrix.java}} |
| - name: Cache local Maven repository |
| uses: actions/cache@v2 |
| 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@v2 |
| 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 test result |
| if: always() |
| uses: actions/upload-artifact@v2 |
| with: |
| name: test-result |
| 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: [ 8,11 ] |
| env: |
| JAVA_VER: ${{matrix.java}} |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Download test result |
| uses: actions/download-artifact@v2 |
| with: |
| name: test-result |
| path: test/jobs/ |
| - name: Merge test result - java ${{matrix.java}} |
| run: ./test/scripts/merge-test-results.sh |