Raincloud conformance #4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Raincloud conformance | |
| # Real-world cross-implementation conformance (issue #205): hydrates the Raincloud | |
| # corpus (Vortex files written by the Python bindings + Parquet oracles) and runs | |
| # RaincloudConformanceIntegrationTest against everything hydrated. Scheduled, not on | |
| # the PR path: hydration depends on upstream dataset URLs that rot independently of | |
| # our code, so a failure here is a finding to triage, not a broken build. | |
| on: | |
| schedule: | |
| - cron: '0 5 * * 1' # Mondays 05:00 UTC | |
| workflow_dispatch: | |
| inputs: | |
| max-mb: | |
| description: 'Per-slug artifact size cap in MB (0 = uncapped)' | |
| default: '200' | |
| jobs: | |
| conformance: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Set up Azul Zulu JDK 25 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: zulu | |
| java-version: '25' | |
| - name: Cache Maven repository | |
| uses: actions/cache@v6 | |
| with: | |
| path: ~/.m2/repository | |
| key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-maven- | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.12' | |
| # keyed on the matrix + pinned tag: a corpus change rebuilds, otherwise | |
| # weekly runs reuse artifacts instead of re-fetching upstream sources | |
| - name: Cache Raincloud corpus | |
| uses: actions/cache@v6 | |
| with: | |
| path: ~/.cache/raincloud | |
| key: raincloud-corpus-${{ hashFiles('scripts/hydrate-raincloud-corpus.sh', 'integration/src/test/resources/raincloud/expected-status.csv') }} | |
| - name: Hydrate corpus | |
| run: scripts/hydrate-raincloud-corpus.sh --max-mb "${{ github.event.inputs.max-mb || '200' }}" | |
| - name: Run conformance suite | |
| run: ./mvnw verify -pl integration -am -Dit.test=RaincloudConformanceIntegrationTest | |
| - name: Publish per-slug results to job summary | |
| if: always() | |
| run: | | |
| { | |
| echo '## Raincloud conformance' | |
| echo '```' | |
| grep -hE "Tests run|slug" integration/target/failsafe-reports/*.txt || true | |
| echo '```' | |
| } >> "$GITHUB_STEP_SUMMARY" |