Skip to content

Commit b688a06

Browse files
committed
Improved GHA setup by centralizing build exclusions
1 parent f2bd35e commit b688a06

File tree

1 file changed

+27
-17
lines changed

1 file changed

+27
-17
lines changed

.github/workflows/build-test.yml

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
name: build-test
22
on: [push, pull_request]
3+
env:
4+
# modules commonly excluded from builds as they have their own independent non-JVM setups and can be run in parallel.
5+
# take care when modifying this list because GLVs use shell commands to remove themselves from this list and
6+
# modifications could break patterns of replacement they are searching for.
7+
EXCLUDE_MODULES: '-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlin-go,-:gremlin-javascript,-:gremlint,-:gremlin-python'
8+
EXCLUDE_FOR_GLV: '-:gremlin-annotations,-:gremlin-archetype,-:gremlin-console,-:hadoop-gremlin,-:neo4j-gremlin,-:spark-gremlin,-:sparql-gremlin'
39
jobs:
410
smoke:
511
name: smoke
@@ -27,7 +33,7 @@ jobs:
2733
java-version: '17'
2834
distribution: 'temurin'
2935
- name: Build with Maven
30-
run: mvn clean install -pl -:gremlin-javascript,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlin-go,-:gremlin-python -Dci --batch-mode -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
36+
run: mvn clean install -pl $EXCLUDE_MODULES -Dci --batch-mode -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
3137
java-jdk11:
3238
name: mvn clean install - jdk11
3339
timeout-minutes: 45
@@ -41,7 +47,7 @@ jobs:
4147
java-version: '11'
4248
distribution: 'temurin'
4349
- name: Build with Maven
44-
run: mvn clean install -pl -:gremlin-javascript,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlin-go,-:gremlin-python -Dci --batch-mode -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -Dcoverage
50+
run: mvn clean install -pl $EXCLUDE_MODULES -Dci --batch-mode -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -Dcoverage
4551
- name: Upload to Codecov
4652
uses: codecov/codecov-action@v5
4753
with:
@@ -60,7 +66,7 @@ jobs:
6066
distribution: 'temurin'
6167
- name: Build with Maven
6268
run: |
63-
mvn clean install -pl -:gremlin-javascript,-:gremlin-python,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlint -q -DskipTests -Dci
69+
mvn clean install -pl $EXCLUDE_MODULES -q -DskipTests -Dci
6470
mvn verify -pl :gremlin-server -DskipTests -DskipIntegrationTests=false -DincludeNeo4j
6571
gremlin-server-unified:
6672
name: gremlin-server unified
@@ -76,7 +82,7 @@ jobs:
7682
distribution: 'temurin'
7783
- name: Build with Maven
7884
run: |
79-
mvn clean install -pl -:gremlin-javascript,-:gremlin-python,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlint -q -DskipTests -Dci
85+
mvn clean install -pl $EXCLUDE_MODULES -q -DskipTests -Dci
8086
mvn verify -pl :gremlin-server -DskipTests -DskipIntegrationTests=false -DincludeNeo4j -DtestUnified=true
8187
cache-gremlin-server-docker-image:
8288
name: cache gremlin-server docker image
@@ -129,11 +135,11 @@ jobs:
129135
- name: Build with Maven Windows
130136
if: runner.os == 'Windows'
131137
run: |
132-
mvn clean install -pl -:gremlin-javascript,-:gremlin-python,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlint -q -DskipTests -DskipImageBuild -Dci
138+
mvn clean install -pl %EXCLUDE_MODULES% -q -DskipTests -DskipImageBuild -Dci
133139
- name: Build with Maven Ubuntu
134140
if: runner.os == 'Linux'
135141
run: |
136-
mvn clean install -pl -:gremlin-javascript,-:gremlin-python,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlint -q -DskipTests -Dci
142+
mvn clean install -pl $EXCLUDE_MODULES -q -DskipTests -Dci
137143
mvn verify -pl :spark-gremlin -DskipTests -DskipIntegrationTests=false '-Dit.test=*IntegrateTest,!SparkGryoSerializerGraphComputerProcessIntegrateTest'
138144
spark-gryo:
139145
name: spark gryo
@@ -153,11 +159,11 @@ jobs:
153159
- name: Build with Maven Windows
154160
if: runner.os == 'Windows'
155161
run: |
156-
mvn clean install -pl -:gremlin-javascript,-:gremlin-python,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlint -q -DskipTests -DskipImageBuild -Dci
162+
mvn clean install -pl %EXCLUDE_MODULES% -q -DskipTests -DskipImageBuild -Dci
157163
- name: Build with Maven Ubuntu
158164
if: runner.os == 'Linux'
159165
run: |
160-
mvn clean install -pl -:gremlin-javascript,-:gremlin-python,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlint -q -DskipTests -Dci
166+
mvn clean install -pl $EXCLUDE_MODULES -q -DskipTests -Dci
161167
mvn verify -pl :spark-gremlin -DskipTests -DskipIntegrationTests=false -Dit.test=SparkGryoSerializerGraphComputerProcessIntegrateTest
162168
gremlin-console:
163169
name: gremlin-console
@@ -174,7 +180,7 @@ jobs:
174180
- name: Build with Maven
175181
run: |
176182
touch gremlin-python/.glv
177-
mvn clean install -pl -:gremlin-javascript,-:gremlin-python,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlint -q -DskipTests -Dci
183+
mvn clean install -pl $EXCLUDE_MODULES -q -DskipTests -Dci
178184
mvn verify -pl :gremlin-console -DskipTests -DskipIntegrationTests=false
179185
gremlin-driver:
180186
name: gremlin-driver
@@ -190,7 +196,7 @@ jobs:
190196
distribution: 'temurin'
191197
- name: Build with Maven
192198
run: |
193-
mvn clean install -pl -:gremlin-javascript,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlint -q -DskipTests -Dci
199+
mvn clean install -pl $EXCLUDE_MODULES -q -DskipTests -Dci
194200
mvn verify -pl gremlin-driver -DskipIntegrationTests=false
195201
javascript:
196202
name: javascript
@@ -229,7 +235,8 @@ jobs:
229235
run: docker load --input gremlin-server.tar
230236
- name: Build with Maven
231237
run: |
232-
mvn clean install -pl -:gremlin-python,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests -q -DskipTests -Dci
238+
EXCLUDE="-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlin-go,-:gremlin-python,$EXCLUDE_FOR_GLV"
239+
mvn clean install -pl $EXCLUDE -q -DskipTests -Dci
233240
mvn verify -pl :gremlin-javascript,:gremlint
234241
python:
235242
name: python
@@ -244,13 +251,14 @@ jobs:
244251
java-version: '11'
245252
distribution: 'temurin'
246253
- name: Set up Python 3.x
247-
uses: actions/setup-python@v5
254+
uses: actions/setup-python@v6
248255
with:
249256
python-version: '3.9'
250257
- name: Build with Maven
251258
run: |
252259
touch gremlin-python/.glv
253-
mvn clean install -pl -:gremlin-javascript,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlint -q -DskipTests -Dci
260+
EXCLUDE="${EXCLUDE_MODULES/,-:gremlin-python},$EXCLUDE_FOR_GLV"
261+
mvn clean install -pl $EXCLUDE -q -DskipTests -Dci
254262
mvn verify -pl gremlin-python
255263
dotnet:
256264
name: .NET
@@ -265,7 +273,7 @@ jobs:
265273
java-version: '11'
266274
distribution: 'temurin'
267275
- name: Set up .NET 8.0.x
268-
uses: actions/setup-dotnet@v4
276+
uses: actions/setup-dotnet@v5
269277
with:
270278
dotnet-version: '8.0.x'
271279
- name: Get Cached Server Base Image
@@ -283,7 +291,8 @@ jobs:
283291
run: |
284292
touch gremlin-dotnet/src/.glv
285293
touch gremlin-dotnet/test/.glv
286-
mvn clean install -pl -:gremlin-javascript,-:gremlin-python,-:gremlint -q -DskipTests -Dci
294+
EXCLUDE="${EXCLUDE_MODULES/-:gremlin-dotnet-source,-:gremlin-dotnet-tests,},$EXCLUDE_FOR_GLV"
295+
mvn clean install -pl $EXCLUDE -q -DskipTests -Dci
287296
mvn verify -pl :gremlin-dotnet,:gremlin-dotnet-tests -P gremlin-dotnet
288297
neo4j-gremlin:
289298
name: neo4j-gremlin
@@ -299,7 +308,7 @@ jobs:
299308
distribution: 'temurin'
300309
- name: Build with Maven
301310
run: |
302-
mvn clean install -pl -:gremlin-javascript,-:gremlin-python,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests -q -DskipTests -Dci
311+
mvn clean install -pl $EXCLUDE_MODULES -q -DskipTests -Dci
303312
mvn verify -pl :neo4j-gremlin -DincludeNeo4j
304313
go:
305314
name: go
@@ -328,7 +337,8 @@ jobs:
328337
working-directory: .
329338
run: |
330339
touch gremlin-go/.glv
331-
mvn clean install -pl -:gremlin-python,-:gremlin-javascript,-:gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests -q -DskipTests -Dci
340+
EXCLUDE="${EXCLUDE_MODULES/-:gremlin-go,},$EXCLUDE_FOR_GLV"
341+
mvn clean install -pl $EXCLUDE -q -DskipTests -Dci
332342
mvn verify -pl :gremlin-go
333343
- name: Upload to Codecov
334344
uses: codecov/codecov-action@v5

0 commit comments

Comments
 (0)