diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index be678c3..5c1f2d0 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -72,13 +72,31 @@ jobs: java-version: '21' distribution: temurin cache: maven + - name: Memory before tests + run: free -h - name: Test - run: mvn --batch-mode --no-transfer-progress -P jcstress verify + run: mvn -e --batch-mode --no-transfer-progress -P jcstress verify - uses: actions/upload-artifact@v7 with: name: jacoco-report path: target/site/jacoco/jacoco.xml if-no-files-found: ignore + - name: Memory after tests + if: always() + run: free -h + - name: Upload crash & surefire dumps + if: failure() + uses: actions/upload-artifact@v7 + with: + name: crash-dumps-test + path: | + ${{ github.workspace }}/hs_err_pid*.log + ${{ github.workspace }}/*.hprof + ${{ github.workspace }}/target/surefire-reports/*.dump + ${{ github.workspace }}/target/surefire-reports/*.dumpstream + ${{ github.workspace }}/target/surefire-reports/*.txt + ${{ github.workspace }}/target/surefire-reports/TEST-*.xml + if-no-files-found: ignore - name: Run PIT mutation tests run: mvn --batch-mode --no-transfer-progress test-compile org.pitest:pitest-maven:mutationCoverage - name: Extract PIT survivors diff --git a/CLAUDE.md b/CLAUDE.md index 5da3767..5103a17 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -349,6 +349,10 @@ Run `mvn spotless:apply` before every commit that touches `.java` files. See [`../workspace/policies/jqwik-prompt-injection.md`](../workspace/policies/jqwik-prompt-injection.md). +## CI Test Diagnostics + +See [`../workspace/policies/ci-test-diagnostics.md`](../workspace/policies/ci-test-diagnostics.md). + ## Lombok Config See [`../workspace/policies/lombok-config.md`](../workspace/policies/lombok-config.md). diff --git a/pom.xml b/pom.xml index 1653a39..6c278c8 100644 --- a/pom.xml +++ b/pom.xml @@ -273,6 +273,15 @@ SPDX-License-Identifier: Apache-2.0 maven-surefire-plugin 3.5.6 + + @{argLine} -Xmx2g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=. -XX:ErrorFile=hs_err_pid%p.log