-
Notifications
You must be signed in to change notification settings - Fork 1
64 lines (54 loc) · 2.17 KB
/
Copy pathraincloud-conformance.yml
File metadata and controls
64 lines (54 loc) · 2.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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"