forked from geoserver/geoserver
-
Notifications
You must be signed in to change notification settings - Fork 7
142 lines (119 loc) · 4.17 KB
/
cite.yml
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
name: Run CITE Tests
on:
pull_request:
paths-ignore:
- '**/src/main/resources/GeoServerApplication_*.properties'
- '!**/src/main/resources/GeoServerApplication_fr.properties'
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
build-war:
runs-on: ubuntu-latest
name: Build GeoServer WAR
steps:
- name: Checkout repository (shallow clone)
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.9.8
- name: Maven repository caching
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: gs-${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
gs-${{ runner.os }}-maven-
- name: Build geoserver.war
working-directory: build/cite
run: make war
- name: Upload geoserver.war as artifact
uses: actions/upload-artifact@v4
with:
name: geoserver-war
path: build/cite/geoserver/geoserver.war
run-cite-tests:
needs: build-war
runs-on: ubuntu-latest
name: CITE
strategy:
fail-fast: false # Prevents other matrix jobs from being canceled if one fails
matrix:
suite: [ogcapi-features10, wms11, wms13, wmts10, wfs10, wfs11, wfs20, wcs11, geotiff11, gpkg12]
steps:
- name: Checkout repository (shallow clone)
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.9.8
- name: Download geoserver.war artifact
uses: actions/download-artifact@v4
with:
name: geoserver-war
path: build/cite/geoserver/
- name: Print services and images used for the ${{ matrix.suite }} test run
# in case there's a jq syntax error
continue-on-error: true
working-directory: build/cite
run: make print-services suite=${{ matrix.suite }}
- name: Pull teamengine and other required images
working-directory: build/cite
continue-on-error: true
run: make pull suite=${{ matrix.suite }}
- name: Build ogccite/geoserver:${{ matrix.suite }} docker image
working-directory: build/cite
run: make build-geoserver-image suite=${{ matrix.suite }}
- name: Build the ETS docker image
working-directory: build/cite
run: make build-ets-image suite=${{ matrix.suite }}
# optional, used to print out a human readable summary of test failures from the testng results xml
- name: Install the optional xmlstarlet utility
run: |
sudo apt-get update && sudo apt-get install -y xmlstarlet
- name: Run the ${{ matrix.suite }} CITE test suite
working-directory: build/cite
run: |
chmod o+w logs
make test suite=${{ matrix.suite }}
- name: Print full failures report
if: always()
working-directory: build/cite
run: make print-full-failures
- name: Print GeoServer full version
if: always()
working-directory: build/cite
run: make geoserver-version
- name: Print GeoServer logs
if: always()
working-directory: build/cite
run: make print-logs suite=${{ matrix.suite }} service=geoserver
- name: Print TeamEngine logs
if: always()
working-directory: build/cite
run: make print-logs suite=${{ matrix.suite }} service=teamengine
- name: Shutdown containers
if: always()
working-directory: build/cite
run: make stop
- name: Upload logs folder
if: always()
uses: actions/upload-artifact@v4
with:
name: cite-${{ matrix.suite }}-logs
path: build/cite/logs/