1
1
2
- name : CI
2
+ name : ci
3
3
4
4
# # RUNNERS
5
5
# ubuntu-24.04 = 4cpu, 16GB
17
17
GRADLE_OPTS : -Dorg.gradle.daemon=false -Dorg.gradle.parallel=true -Dorg.gradle.workers.max=4 -Xmx4096m
18
18
19
19
jobs :
20
+
21
+ spotless :
22
+ runs-on : ubuntu-24.04
23
+ environment : dev
24
+ steps :
25
+ - name : Checkout
26
+ uses : actions/checkout@v4
27
+ with :
28
+ submodules : ' recursive'
29
+
30
+ - name : Prepare
31
+ uses : ./.github/actions/prepare
32
+
33
+ - name : Spotless
34
+ run : |
35
+ ./gradlew spotlessCheck
36
+
37
+ moduleChecks :
38
+ runs-on : ubuntu-24.04
39
+ environment : dev
40
+ steps :
41
+ - name : Checkout
42
+ uses : actions/checkout@v4
43
+ with :
44
+ submodules : ' recursive'
45
+
46
+ - name : Prepare
47
+ uses : ./.github/actions/prepare
48
+
49
+ - name : Check modules
50
+ run : |
51
+ ./gradlew checkMavenCoordinateCollisions checkModuleDependencies
52
+
20
53
assemble :
21
- # 4 cpu, 16G ram
22
54
runs-on : ubuntu-24.04
23
55
environment : dev
24
56
steps :
30
62
- name : Prepare
31
63
uses : ./.github/actions/prepare
32
64
65
+ # TODO: remove me later
33
66
# - name: ssh
34
67
# uses: ryanchapman/gha-ssh@v1
35
68
# timeout-minutes: 10
54
87
path : |
55
88
./
56
89
!./.git/**
57
- retention-days : 7
90
+ retention-days : 1
58
91
59
92
unitTests :
60
93
needs : assemble
@@ -85,6 +118,12 @@ jobs:
85
118
echo "Prepared arguments for Gradle: $GRADLE_ARGS"
86
119
./gradlew test $GRADLE_ARGS
87
120
121
+ - name : Test results
122
+ uses : ./.github/actions/testResults
123
+ if : always()
124
+ with :
125
+ suiteName : ' unitTests'
126
+
88
127
integrationTests :
89
128
needs : assemble
90
129
# 32 cpu, 128G ram
@@ -109,6 +148,12 @@ jobs:
109
148
ls -la .
110
149
./gradlew integrationTest
111
150
151
+ - name : Test results
152
+ uses : ./.github/actions/testResults
153
+ if : always()
154
+ with :
155
+ suiteName : ' integrationTests'
156
+
112
157
propertyTests :
113
158
needs : assemble
114
159
# 32 cpu, 128G ram
@@ -138,6 +183,12 @@ jobs:
138
183
echo "Prepared arguments for Gradle: $GRADLE_ARGS"
139
184
./gradlew --info propertyTest $GRADLE_ARGS
140
185
186
+ - name : Test results
187
+ uses : ./.github/actions/testResults
188
+ if : always()
189
+ with :
190
+ suiteName : ' propertyTests'
191
+
141
192
acceptanceTests :
142
193
needs : assemble
143
194
# 32 cpu, 128G ram
@@ -166,3 +217,92 @@ jobs:
166
217
GRADLE_ARGS=$(echo $CLASSNAMES | awk '{for (i=1; i<=NF; i++) print "--tests",$i}')
167
218
echo "Prepared arguments for Gradle: $GRADLE_ARGS"
168
219
./gradlew acceptanceTest $GRADLE_ARGS
220
+
221
+ - name : Test results
222
+ uses : ./.github/actions/testResults
223
+ if : always()
224
+ with :
225
+ suiteName : ' acceptanceTests'
226
+
227
+ referenceTests :
228
+ needs : assemble
229
+ # 32 cpu, 128G ram
230
+ runs-on : ubuntu-latest-128
231
+ environment : dev
232
+ steps :
233
+ - name : Checkout
234
+ uses : actions/checkout@v4
235
+ with :
236
+ submodules : ' recursive'
237
+
238
+ - name : Prepare
239
+ uses : ./.github/actions/prepare
240
+
241
+ - name : Download workspace build
242
+ uses : actions/download-artifact@v4
243
+ with :
244
+ name : workspace
245
+
246
+ - name : Fetch Reference Tests
247
+ run : |
248
+ if [ ! -d "eth-reference-tests/src/referenceTest/resources/consensus-spec-tests/tests" ]
249
+ then
250
+ ./gradlew --no-daemon expandRefTests
251
+ fi
252
+
253
+ # Compile separately so that we have the generated test files for splitting across nodes
254
+ - name : CompileReferenceTests
255
+ run : |
256
+ ./gradlew --no-daemon --parallel compileReferenceTestJava
257
+
258
+ - name : Reference Tests
259
+ run : |
260
+ CLASSNAMES=$(find . -iwholename "**/src/referenceTest/generated_tests/**/*Test.java" \
261
+ | sed 's@.*/src/referenceTest/generated_tests/@@' \
262
+ | sed 's@/@.@g' \
263
+ | sed 's/.\{5\}$//' )
264
+ GRADLE_ARGS=$(echo $CLASSNAMES | awk '{for (i=1; i<=NF; i++) print "--tests",$i}')
265
+ echo "Prepared arguments for Gradle: $GRADLE_ARGS"
266
+ ./gradlew -x generateReferenceTestClasses -x processReferenceTestResources -x cleanReferenceTestClasses referenceTest $GRADLE_ARGS
267
+
268
+ - name : Test results
269
+ uses : ./.github/actions/testResults
270
+ if : always()
271
+ with :
272
+ suiteName : ' referenceTests'
273
+
274
+ windowsBuild :
275
+ needs : [spotless, moduleChecks ]
276
+ # 32 cpu, 128G ram
277
+ runs-on : windows-2022
278
+ environment : dev
279
+ steps :
280
+ - name : Checkout
281
+ uses : actions/checkout@v4
282
+ with :
283
+ submodules : ' recursive'
284
+
285
+ - name : Prepare
286
+ uses : ./.github/actions/prepareWindows
287
+
288
+ - name : Build
289
+ shell : powershell
290
+ run : |
291
+ $Env:JAVA_TOOL_OPTIONS = "-Xmx2g"
292
+ $Env:GRADLE_OPTS = "-Dorg.gradle.daemon=false -Dorg.gradle.parallel=true -Dorg.gradle.vfs.watch=false"
293
+ cmd.exe /c gradlew.bat --no-daemon --parallel --build-cache
294
+
295
+ - name : Build
296
+ shell : powershell
297
+ run : |
298
+ New-Item -ItemType Directory -Force build\test-results
299
+ Get-ChildItem -Recurse | Where-Object {$_.FullName -match "test-results\\.*\\.*.xml"} | Copy-Item -Destination build\test-results\
300
+
301
+ - name : Publish Windows Test Results and Reports
302
+ uses : actions/upload-artifact@v4
303
+ if : always()
304
+ with :
305
+ if-no-files-found : ignore
306
+ retention-days : 7
307
+ path : |
308
+ build/test-results/
0 commit comments