Skip to content

Harden Pirate wallet loading, JNI serialization, and lifecycle #532

Harden Pirate wallet loading, JNI serialization, and lifecycle

Harden Pirate wallet loading, JNI serialization, and lifecycle #532

Workflow file for this run

name: PR testing
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
permissions:
contents: read
jobs:
mavenTesting:
runs-on: ubuntu-latest
# The full suite is ~2,750 tests and takes roughly 10-15 minutes; this is a runaway guard,
# not a target. Raise it rather than narrowing the suite if it is ever legitimately hit.
timeout-minutes: 60
steps:
- uses: actions/checkout@v6
- name: Cache local Maven repository
uses: actions/cache@v5
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml', 'lib/**/*.pom', 'lib/**/*.jar') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Set up the Java JDK
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'temurin'
- name: Load custom deps
run: |
mvn -B -U install -DskipTests=true --file pom.xml
- name: Build package
run: |
mvn -B clean package --file pom.xml
# Runs the whole JUnit suite. This deliberately replaces the previous
# `-Dtest=CorsFilterTests,TranslationsTests` filter: that filter meant CI green proved only
# that the package built and two classes passed, so consensus, repository-schema and
# serialization regressions could - and did - reach main unnoticed.
#
# GUI display tests stay excluded here (they need a display and have their own workflow);
# surefire runs headless via the pom's test.awt.headless property.
- name: Run full test suite
run: |
mvn -B test -DskipJUnitTests=false --file pom.xml
- name: Upload surefire reports on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: surefire-reports
path: target/surefire-reports/
retention-days: 7