mirror of
https://github.com/architectury/architectury-loom.git
synced 2026-04-02 13:37:45 -05:00
actions: Restore test-push.yml to be closer to upstream
This commit is contained in:
173
.github/workflows/test-push.yml
vendored
Normal file
173
.github/workflows/test-push.yml
vendored
Normal file
@@ -0,0 +1,173 @@
|
||||
name: Run Tests
|
||||
on: [push, pull_request]
|
||||
|
||||
concurrency:
|
||||
group: build-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
version: [8.1.0-jdk17]
|
||||
runs-on: ubuntu-22.04
|
||||
container:
|
||||
image: gradle:${{ matrix.version }}
|
||||
options: --user root
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: gradle/wrapper-validation-action@v1
|
||||
- run: gradle build check -x test --stacktrace --warning-mode fail
|
||||
- uses: Juuxel/publish-checkstyle-report@v1
|
||||
if: ${{ failure() }}
|
||||
with:
|
||||
reports: |
|
||||
build/reports/checkstyle/*.xml
|
||||
|
||||
# This job is used to feed the test matrix of next job to allow the tests to run in parallel
|
||||
prepare_test_matrix:
|
||||
# Lets wait to ensure it builds before going running tests
|
||||
needs: build
|
||||
|
||||
runs-on: ubuntu-22.04
|
||||
container:
|
||||
image: gradle:8.1.0-jdk17
|
||||
options: --user root
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- run: gradle writeActionsTestMatrix --stacktrace --warning-mode fail
|
||||
-
|
||||
id: set-matrix
|
||||
run: echo "matrix=$(cat build/test_matrix.json)" >> $GITHUB_OUTPUT
|
||||
|
||||
outputs:
|
||||
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
||||
|
||||
run_tests:
|
||||
needs: prepare_test_matrix
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
version: [8.1.0-jdk17]
|
||||
test: ${{ fromJson(needs.prepare_test_matrix.outputs.matrix) }}
|
||||
|
||||
runs-on: ubuntu-22.04
|
||||
container:
|
||||
image: gradle:${{ matrix.version }}
|
||||
options: --user root
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- run: gradle printActionsTestName --name="${{ matrix.test }}" test --tests ${{ matrix.test }} --stacktrace --warning-mode fail
|
||||
env:
|
||||
TEST_WARNING_MODE: fail
|
||||
id: test
|
||||
- name: Publish test results for report
|
||||
uses: actions/upload-artifact@v3
|
||||
if: ${{ failure() || success() }}
|
||||
with:
|
||||
name: Raw Test Results
|
||||
path: build/test-results/**/*.xml
|
||||
retention-days: 1
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
if: ${{ failure() }}
|
||||
with:
|
||||
name: ${{ steps.test.outputs.test }} Results
|
||||
path: build/reports/
|
||||
- uses: actions/upload-artifact@v3
|
||||
if: ${{ failure() }}
|
||||
with:
|
||||
name: ${{ steps.test.outputs.test }} Heap Dump
|
||||
path: "*.hprof"
|
||||
|
||||
run_tests_windows:
|
||||
needs: prepare_test_matrix
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
java: [17]
|
||||
test: ${{ fromJson(needs.prepare_test_matrix.outputs.matrix) }}
|
||||
|
||||
runs-on: windows-2022
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: setup jdk ${{ matrix.java }}
|
||||
uses: actions/setup-java@v3
|
||||
with:
|
||||
java-version: ${{ matrix.java }}
|
||||
distribution: 'temurin'
|
||||
- run: ./gradlew printActionsTestName --name="${{ matrix.test }}" test --tests ${{ matrix.test }} --stacktrace --warning-mode fail
|
||||
env:
|
||||
TEST_WARNING_MODE: fail
|
||||
id: test
|
||||
- name: Publish test results for report
|
||||
uses: actions/upload-artifact@v3
|
||||
if: ${{ failure() || success() }}
|
||||
with:
|
||||
name: Raw Test Results
|
||||
path: build/test-results/**/*.xml
|
||||
retention-days: 1
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
if: ${{ failure() }}
|
||||
with:
|
||||
name: ${{ steps.test.outputs.test }} (${{ matrix.java }}) Results (Windows)
|
||||
path: build/reports/
|
||||
- uses: actions/upload-artifact@v3
|
||||
if: ${{ failure() }}
|
||||
with:
|
||||
name: ${{ steps.test.outputs.test }} Heap Dump (Windows)
|
||||
path: "*.hprof"
|
||||
|
||||
# Special case this test to run across all os's
|
||||
reproducible_build_test:
|
||||
needs: build
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
java: [ 17, 20 ]
|
||||
os: [ windows-2022, ubuntu-22.04, macos-12 ]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-java@v3
|
||||
with:
|
||||
java-version: ${{ matrix.java }}
|
||||
distribution: 'temurin'
|
||||
|
||||
- run: ./gradlew test --tests *ReproducibleBuildTest --stacktrace --warning-mode fail
|
||||
- name: Publish test results for report
|
||||
uses: actions/upload-artifact@v3
|
||||
if: ${{ failure() || success() }}
|
||||
with:
|
||||
name: Raw Test Results
|
||||
path: build/test-results/**/*.xml
|
||||
retention-days: 1
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
if: ${{ failure() }}
|
||||
with:
|
||||
name: Reproducible Build ${{ matrix.os }} (${{ matrix.java }}) Results
|
||||
path: build/reports/
|
||||
|
||||
test_report:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [run_tests, run_tests_windows, reproducible_build_test]
|
||||
if: ${{ failure() || success() }}
|
||||
steps:
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
path: artifacts
|
||||
- name: Publish test report
|
||||
uses: EnricoMi/publish-unit-test-result-action@v2
|
||||
with:
|
||||
junit_files: "artifacts/**/*.xml"
|
||||
Reference in New Issue
Block a user