| name: Java CI |
| |
| on: |
| pull_request: |
| paths: |
| - "**" |
| push: |
| paths: |
| - '**' |
| |
| env: |
| FORK_COUNT: 2 |
| FAIL_FAST: 0 |
| SHOW_ERROR_DETAIL: 1 |
| |
| jobs: |
| build: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v1 |
| - name: Cache local Maven repository |
| uses: actions/cache@v2 |
| with: |
| path: ~/.m2/repository |
| key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} |
| restore-keys: | |
| ${{ runner.os }}-maven- |
| - name: Set up JDK 1.8 |
| uses: actions/setup-java@v1 |
| with: |
| java-version: 1.8 |
| - name: Build with Maven |
| run: | |
| ./mvnw --settings .mvn/settings.xml clean package |
| |
| prepare_test: |
| runs-on: ubuntu-latest |
| env: |
| JOB_COUNT: 6 |
| steps: |
| - uses: actions/checkout@v1 |
| - name: Prepare test list |
| run: | |
| cd test |
| bash ./prepare-test.sh |
| - name: Upload test list result |
| uses: actions/upload-artifact@v2 |
| with: |
| name: test-list-result |
| path: test/jobs |
| |
| test_job_1: |
| needs: prepare_test |
| runs-on: ubuntu-latest |
| env: |
| TEST_CASE_FILE: jobs/testcases-1.txt |
| steps: |
| - uses: actions/checkout@v1 |
| - name: Cache local Maven repository |
| uses: actions/cache@v2 |
| with: |
| path: ~/.m2/repository |
| key: ${{ runner.os }}-maven-${{ hashFiles('**/test/pom.xml') }} |
| restore-keys: | |
| ${{ runner.os }}-maven- |
| - name: Set up JDK 1.8 |
| uses: actions/setup-java@v1 |
| with: |
| java-version: 1.8 |
| - name: Build with Maven |
| run: | |
| ./mvnw --settings .mvn/settings.xml clean package dependency:copy-dependencies -DskipTests |
| - name: Download test list result |
| uses: actions/download-artifact@v2 |
| with: |
| name: test-list-result |
| path: test/jobs/ |
| - uses: satackey/action-docker-layer-caching@v0.0.11 |
| with: |
| key: ${{ runner.os }}-docker-layer-${{ hashFiles('**/test/build-test-image.sh') }} |
| restore-keys: ${{ runner.os }}-docker-layer-${{ hashFiles('**/test/build-test-image.sh') }} |
| - name: Build test image |
| run: cd test && bash ./build-test-image.sh |
| - name: Run tests |
| run: cd test && BUILD=n bash ./run-tests.sh |
| - name: Clean images |
| run: cd test && bash ./clean-damaged-image.sh |
| |
| test_job_2: |
| needs: prepare_test |
| runs-on: ubuntu-latest |
| env: |
| TEST_CASE_FILE: jobs/testcases-2.txt |
| steps: |
| - uses: actions/checkout@v1 |
| - name: Cache local Maven repository |
| uses: actions/cache@v2 |
| with: |
| path: ~/.m2/repository |
| key: ${{ runner.os }}-maven-${{ hashFiles('**/test/pom.xml') }} |
| restore-keys: | |
| ${{ runner.os }}-maven- |
| - name: Set up JDK 1.8 |
| uses: actions/setup-java@v1 |
| with: |
| java-version: 1.8 |
| - name: Build with Maven |
| run: | |
| ./mvnw --settings .mvn/settings.xml clean package dependency:copy-dependencies -DskipTests |
| - name: Download test list result |
| uses: actions/download-artifact@v2 |
| with: |
| name: test-list-result |
| path: test/jobs/ |
| - uses: satackey/action-docker-layer-caching@v0.0.11 |
| with: |
| key: ${{ runner.os }}-docker-layer-${{ hashFiles('**/test/build-test-image.sh') }} |
| restore-keys: ${{ runner.os }}-docker-layer-${{ hashFiles('**/test/build-test-image.sh') }} |
| - name: Build test image |
| run: cd test && bash ./build-test-image.sh |
| - name: Run tests |
| run: cd test && BUILD=n bash ./run-tests.sh |
| - name: Clean images |
| run: cd test && bash ./clean-damaged-image.sh |
| |
| test_job_3: |
| needs: prepare_test |
| runs-on: ubuntu-latest |
| env: |
| TEST_CASE_FILE: jobs/testcases-3.txt |
| steps: |
| - uses: actions/checkout@v1 |
| - name: Cache local Maven repository |
| uses: actions/cache@v2 |
| with: |
| path: ~/.m2/repository |
| key: ${{ runner.os }}-maven-${{ hashFiles('**/test/pom.xml') }} |
| restore-keys: | |
| ${{ runner.os }}-maven- |
| - name: Set up JDK 1.8 |
| uses: actions/setup-java@v1 |
| with: |
| java-version: 1.8 |
| - name: Build with Maven |
| run: | |
| ./mvnw --settings .mvn/settings.xml clean package dependency:copy-dependencies -DskipTests |
| - name: Download test list result |
| uses: actions/download-artifact@v2 |
| with: |
| name: test-list-result |
| path: test/jobs/ |
| - uses: satackey/action-docker-layer-caching@v0.0.11 |
| with: |
| key: ${{ runner.os }}-docker-layer-${{ hashFiles('**/test/build-test-image.sh') }} |
| restore-keys: ${{ runner.os }}-docker-layer-${{ hashFiles('**/test/build-test-image.sh') }} |
| - name: Build test image |
| run: cd test && bash ./build-test-image.sh |
| - name: Run tests |
| run: cd test && BUILD=n bash ./run-tests.sh |
| - name: Clean images |
| run: cd test && bash ./clean-damaged-image.sh |
| |
| test_job_4: |
| needs: prepare_test |
| runs-on: ubuntu-latest |
| env: |
| TEST_CASE_FILE: jobs/testcases-4.txt |
| steps: |
| - uses: actions/checkout@v1 |
| - name: Cache local Maven repository |
| uses: actions/cache@v2 |
| with: |
| path: ~/.m2/repository |
| key: ${{ runner.os }}-maven-${{ hashFiles('**/test/pom.xml') }} |
| restore-keys: | |
| ${{ runner.os }}-maven- |
| - name: Set up JDK 1.8 |
| uses: actions/setup-java@v1 |
| with: |
| java-version: 1.8 |
| - name: Build with Maven |
| run: | |
| ./mvnw --settings .mvn/settings.xml clean package dependency:copy-dependencies -DskipTests |
| - name: Download test list result |
| uses: actions/download-artifact@v2 |
| with: |
| name: test-list-result |
| path: test/jobs/ |
| - uses: satackey/action-docker-layer-caching@v0.0.11 |
| with: |
| key: ${{ runner.os }}-docker-layer-${{ hashFiles('**/test/build-test-image.sh') }} |
| restore-keys: ${{ runner.os }}-docker-layer-${{ hashFiles('**/test/build-test-image.sh') }} |
| - name: Build test image |
| run: cd test && bash ./build-test-image.sh |
| - name: Run tests |
| run: cd test && BUILD=n bash ./run-tests.sh |
| - name: Clean images |
| run: cd test && bash ./clean-damaged-image.sh |
| |
| test_job_5: |
| needs: prepare_test |
| runs-on: ubuntu-latest |
| env: |
| TEST_CASE_FILE: jobs/testcases-5.txt |
| steps: |
| - uses: actions/checkout@v1 |
| - name: Cache local Maven repository |
| uses: actions/cache@v2 |
| with: |
| path: ~/.m2/repository |
| key: ${{ runner.os }}-maven-${{ hashFiles('**/test/pom.xml') }} |
| restore-keys: | |
| ${{ runner.os }}-maven- |
| - name: Set up JDK 1.8 |
| uses: actions/setup-java@v1 |
| with: |
| java-version: 1.8 |
| - name: Build with Maven |
| run: | |
| ./mvnw --settings .mvn/settings.xml clean package dependency:copy-dependencies -DskipTests |
| - name: Download test list result |
| uses: actions/download-artifact@v2 |
| with: |
| name: test-list-result |
| path: test/jobs/ |
| - uses: satackey/action-docker-layer-caching@v0.0.11 |
| with: |
| key: ${{ runner.os }}-docker-layer-${{ hashFiles('**/test/build-test-image.sh') }} |
| restore-keys: ${{ runner.os }}-docker-layer-${{ hashFiles('**/test/build-test-image.sh') }} |
| - name: Build test image |
| run: cd test && bash ./build-test-image.sh |
| - name: Run tests |
| run: cd test && BUILD=n bash ./run-tests.sh |
| - name: Clean images |
| run: cd test && bash ./clean-damaged-image.sh |
| |
| test_job_6: |
| needs: prepare_test |
| runs-on: ubuntu-latest |
| env: |
| TEST_CASE_FILE: jobs/testcases-6.txt |
| steps: |
| - uses: actions/checkout@v1 |
| - name: Cache local Maven repository |
| uses: actions/cache@v2 |
| with: |
| path: ~/.m2/repository |
| key: ${{ runner.os }}-maven-${{ hashFiles('**/test/pom.xml') }} |
| restore-keys: | |
| ${{ runner.os }}-maven- |
| - name: Set up JDK 1.8 |
| uses: actions/setup-java@v1 |
| with: |
| java-version: 1.8 |
| - name: Build with Maven |
| run: | |
| ./mvnw --settings .mvn/settings.xml clean package dependency:copy-dependencies -DskipTests |
| - name: Download test list result |
| uses: actions/download-artifact@v2 |
| with: |
| name: test-list-result |
| path: test/jobs/ |
| - uses: satackey/action-docker-layer-caching@v0.0.11 |
| with: |
| key: ${{ runner.os }}-docker-layer-${{ hashFiles('**/test/build-test-image.sh') }} |
| restore-keys: ${{ runner.os }}-docker-layer-${{ hashFiles('**/test/build-test-image.sh') }} |
| - name: Build test image |
| run: cd test && bash ./build-test-image.sh |
| - name: Run tests |
| run: cd test && BUILD=n bash ./run-tests.sh |
| - name: Clean images |
| run: cd test && bash ./clean-damaged-image.sh |