11name : WrapCa CI
22
33on :
4- push :
5- branches : [ master ]
6- pull_request :
7- branches : [ master ]
4+ push :
5+ branches : [ master ]
6+ pull_request :
7+ branches : [ master ]
88
99jobs :
1010
11- stage-1-foundation :
12- name : " Stage 1 — Domain & Physics (grid, rothermel)"
13- runs-on : ubuntu-latest
14- steps :
15- - uses : actions/checkout@v4
16- - uses : actions/setup-java@v4
17- with :
18- distribution : temurin
19- java-version : ' 21'
20- cache : maven
21- - name : Compile
22- run : mvn -B compile
23- - name : Unit test — grid + rothermel
24- run : mvn -B test -Dtest="com.victorkithinji.wrap.wrapca.grid.**,com.victorkithinji.wrap.wrapca.rothermel.**"
11+ stage-1-foundation :
12+ name : " Stage 1 — Domain & Physics (grid, rothermel)"
13+ runs-on : ubuntu-latest
14+ steps :
15+ - uses : actions/checkout@v4
16+ - uses : actions/setup-java@v4
17+ with :
18+ distribution : temurin
19+ java-version : ' 21'
20+ cache : maven
21+ - name : Compile
22+ run : mvn -B compile
23+ - name : Unit test — grid + rothermel
24+ run : mvn -B test -Dtest="com.victorkithinji.wrap.wrapca.grid.**,com.victorkithinji.wrap.wrapca.rothermel.**"
2525
26- stage-2-config :
27- name : " Stage 2 — Configuration"
28- needs : stage-1-foundation
29- runs-on : ubuntu-latest
30- steps :
31- - uses : actions/checkout@v4
32- - uses : actions/setup-java@v4
33- with :
34- distribution : temurin
35- java-version : ' 21'
36- cache : maven
37- - name : Spring context binding test — config
38- run : mvn -B test -Dtest="com.victorkithinji.wrap.wrapca.config.**"
26+ stage-2-config :
27+ name : " Stage 2 — Configuration"
28+ needs : stage-1-foundation
29+ runs-on : ubuntu-latest
30+ steps :
31+ - uses : actions/checkout@v4
32+ - uses : actions/setup-java@v4
33+ with :
34+ distribution : temurin
35+ java-version : ' 21'
36+ cache : maven
37+ - name : Compile
38+ run : mvn -B compile
39+ # No tests exist yet for `config` — tracked gap, not a failure.
40+ # This stage still runs so it's positioned in the pipeline correctly
41+ # once tests are added; today it just compiles and flags the gap.
42+ - name : Flag coverage gap — config
43+ run : echo "::warning title=No tests::config package has zero test coverage (SimulationConfig, CorsConfig)"
3944
40- stage-3-ingestion :
41- name : " Stage 3 — Ingestion & CV Integration"
42- needs : stage-2-config
43- runs-on : ubuntu-latest
44- steps :
45- - uses : actions/checkout@v4
46- - uses : actions/setup-java@v4
47- with :
48- distribution : temurin
49- java-version : ' 21'
50- cache : maven
51- - name : Unit test — ingestion + cvintegration
52- run : mvn -B test -Dtest="com.victorkithinji.wrap.wrapca.ingestion.**,com.victorkithinji.wrap.wrapca.cvintegration.**"
45+ stage-3-ingestion :
46+ name : " Stage 3 — Ingestion & CV Integration"
47+ needs : stage-2-config
48+ runs-on : ubuntu-latest
49+ steps :
50+ - uses : actions/checkout@v4
51+ - uses : actions/setup-java@v4
52+ with :
53+ distribution : temurin
54+ java-version : ' 21'
55+ cache : maven
56+ - name : Unit test — ingestion
57+ run : mvn -B test -Dtest="com.victorkithinji.wrap.wrapca.ingestion.**"
58+ - name : Flag coverage gap — cvintegration
59+ run : echo "::warning title=No tests::cvintegration package has zero test coverage (FirePerimeterData, CvApiClient)"
5360
54- stage-4-grid-simulation :
55- name : " Stage 4 — Grid Init & CA Engine"
56- needs : stage-3-ingestion
57- runs-on : ubuntu-latest
58- steps :
59- - uses : actions/checkout@v4
60- - uses : actions/setup-java@v4
61- with :
62- distribution : temurin
63- java-version : ' 21'
64- cache : maven
65- - name : Unit test — grid init + simulation engine
66- run : mvn -B test -Dtest="com.victorkithinji.wrap.wrapca.simulation.**"
61+ stage-4-grid-simulation :
62+ name : " Stage 4 — Grid Init & CA Engine"
63+ needs : stage-3-ingestion
64+ runs-on : ubuntu-latest
65+ steps :
66+ - uses : actions/checkout@v4
67+ - uses : actions/setup-java@v4
68+ with :
69+ distribution : temurin
70+ java-version : ' 21'
71+ cache : maven
72+ - name : Unit test — simulation engine
73+ run : mvn -B test -Dtest="com.victorkithinji.wrap.wrapca.simulation.**"
6774
68- stage-5-analysis :
69- name : " Stage 5 — Monte Carlo & CV Correction"
70- needs : stage-4-grid-simulation
71- runs-on : ubuntu-latest
72- steps :
73- - uses : actions/checkout@v4
74- - uses : actions/setup-java@v4
75- with :
76- distribution : temurin
77- java-version : ' 21'
78- cache : maven
79- - name : Unit test — montecarlo + correction
80- run : mvn -B test -Dtest="com.victorkithinji.wrap.wrapca.montecarlo.**,com.victorkithinji.wrap.wrapca.correction.**"
75+ stage-5-analysis :
76+ name : " Stage 5 — Monte Carlo & CV Correction"
77+ needs : stage-4-grid-simulation
78+ runs-on : ubuntu-latest
79+ steps :
80+ - uses : actions/checkout@v4
81+ - uses : actions/setup-java@v4
82+ with :
83+ distribution : temurin
84+ java-version : ' 21'
85+ cache : maven
86+ - name : Unit test — montecarlo
87+ run : mvn -B test -Dtest="com.victorkithinji.wrap.wrapca.montecarlo.**"
88+ - name : Flag coverage gap — correction
89+ run : echo "::warning title=No tests::correction package has zero test coverage (SuppressedZoneRegistry, CvStateInjectorService)"
8190
82- stage-6-output-persistence :
83- name : " Stage 6 — Output, History, DTOs"
84- needs : stage-5-analysis
85- runs-on : ubuntu-latest
86- steps :
87- - uses : actions/checkout@v4
88- - uses : actions/setup-java@v4
89- with :
90- distribution : temurin
91- java-version : ' 21'
92- cache : maven
93- - name : Unit test — output + history + dto
94- run : mvn -B test -Dtest="com.victorkithinji.wrap.wrapca.output.**,com.victorkithinji.wrap.wrapca.history.**,com.victorkithinji.wrap.wrapca.dto.**"
91+ stage-6-output-persistence :
92+ name : " Stage 6 — Output, History, DTOs"
93+ needs : stage-5-analysis
94+ runs-on : ubuntu-latest
95+ steps :
96+ - uses : actions/checkout@v4
97+ - uses : actions/setup-java@v4
98+ with :
99+ distribution : temurin
100+ java-version : ' 21'
101+ cache : maven
102+ - name : Unit test — output
103+ run : mvn -B test -Dtest="com.victorkithinji.wrap.wrapca.output.**"
104+ - name : Flag coverage gap — history
105+ run : echo "::warning title=No tests::history package has zero test coverage (RunLogWriterService, RunLogReaderService)"
106+ - name : Flag coverage gap — dto
107+ run : echo "::warning title=No tests::dto package has zero test coverage (request/response shapes)"
95108
96- stage-7-integration :
97- name : " Stage 7 — Facade, API, CORS integration"
98- needs : stage-6-output-persistence
99- runs-on : ubuntu-latest
100- steps :
101- - uses : actions/checkout@v4
102- - uses : actions/setup-java@v4
103- with :
104- distribution : temurin
105- java-version : ' 21'
106- cache : maven
107- - name : Full package build
108- run : mvn -B package
109- - name : Integration test — facade + api + CORS
110- run : mvn -B test -Dtest="com.victorkithinji.wrap.wrapca.facade.**,com.victorkithinji.wrap.wrapca.api.**"
111- - name : Upload jar artifact
112- uses : actions/upload-artifact@v4
113- with :
114- name : wrapca-jar
115- path : target/*.jar
109+ stage-7-integration :
110+ name : " Stage 7 — Facade, API, CORS integration"
111+ needs : stage-6-output-persistence
112+ runs-on : ubuntu-latest
113+ steps :
114+ - uses : actions/checkout@v4
115+ - uses : actions/setup-java@v4
116+ with :
117+ distribution : temurin
118+ java-version : ' 21'
119+ cache : maven
120+ - name : Full package build
121+ run : mvn -B package
122+ - name : Integration test — facade + api + CORS
123+ run : mvn -B test -Dtest="com.victorkithinji.wrap.wrapca.facade.**,com.victorkithinji.wrap.wrapca.api.**"
124+ - name : Upload jar artifact
125+ uses : actions/upload-artifact@v4
126+ with :
127+ name : wrapca-jar
128+ path : target/*.jar
0 commit comments