-
Notifications
You must be signed in to change notification settings - Fork 184
201 lines (185 loc) · 6.31 KB
/
pr-verify.yml
File metadata and controls
201 lines (185 loc) · 6.31 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
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
name: PR verify
on: pull_request
permissions:
contents: read # checkout & other read‑only operations
actions: write # allows the cancel‑workflow step to call the Actions API
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
formatting-and-quick-compile:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Register JVM thread dump on cancel
uses: ./.github/actions/thread-dump-post
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 25
distribution: 'temurin'
cache: maven
- name: Check formatting
run: mvn -B -Pformatting spotless:check
- name: Quick compile
run: mvn -B --quiet -T 2C compile -DskipTests -Pquick
- name: Download all other dependencies
run: mvn -B --quiet -T 2C dependency:go-offline
compile:
needs: formatting-and-quick-compile
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Register JVM thread dump on cancel
uses: ./.github/actions/thread-dump-post
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 25
distribution: 'temurin'
cache: maven
- name: Compile (mvn clean install)
run: mvn -B clean install -DskipTests
build:
needs: formatting-and-quick-compile
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
jdk: [ 25 ]
steps:
- uses: actions/checkout@v4
- name: Register JVM thread dump on cancel
uses: ./.github/actions/thread-dump-post
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.jdk }}
distribution: 'temurin'
cache: maven
- name: Build
run: mvn --quiet clean && mvn -B --quiet -T 2C install -Pquick
- name: Test
run: exec ./scripts/ci/run-with-thread-dump.sh mvn -B test -DskipITs -P-formatting -Dmaven.javadoc.skip -Djapicmp.skip -Denforcer.skip -Danimal.sniffer.skip
- name: Publish Test Report
if: failure()
uses: scacap/action-surefire-report@v1.9.0
with:
check_name: Test report - build - ${{ matrix.jdk }}
integration-tests:
needs: formatting-and-quick-compile
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Register JVM thread dump on cancel
uses: ./.github/actions/thread-dump-post
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 25
distribution: 'temurin'
cache: maven
- name: Build
run: mvn --quiet clean && mvn -B --quiet -T 2C install -Pquick
- name: Verify
run: exec ./scripts/ci/run-with-thread-dump.sh mvn -B verify -PskipUnitTests,-formatting -Dmaven.javadoc.skip -Denforcer.skip -Danimal.sniffer.skip
- name: Publish Test Report
if: failure()
uses: scacap/action-surefire-report@v1.9.0
with:
check_name: Test report - integration-tests
slow-tests:
needs: formatting-and-quick-compile
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Register JVM thread dump on cancel
uses: ./.github/actions/thread-dump-post
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 25
distribution: 'temurin'
cache: maven
- name: Build
run: mvn --quiet clean && mvn -B --quiet -T 2C install -Pquick
- name: Verify
run: exec ./scripts/ci/run-with-thread-dump.sh mvn -B verify -PslowTestsOnly,-skipSlowTests,-formatting -Dmaven.javadoc.skip -Djapicmp.skip -Denforcer.skip -Danimal.sniffer.skip
- name: Publish Test Report
if: failure()
uses: scacap/action-surefire-report@v1.9.0
with:
check_name: Test report - slow-tests
package-assembly:
needs: formatting-and-quick-compile
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Register JVM thread dump on cancel
uses: ./.github/actions/thread-dump-post
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 25
distribution: 'temurin'
cache: maven
- name: Run install
run: mvn --quiet clean && mvn -B --quiet -T 2C install -Pquick
- name: Package assembly
run: mvn package -Passembly -DskipTests
e2e:
name: e2e (${{ matrix.runtime.label }})
needs: formatting-and-quick-compile
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
runtime:
- label: Spring Boot
argument: spring-boot
- label: Docker Tomcat
argument: docker-tomcat
steps:
- uses: actions/checkout@v4
- name: Register JVM thread dump on cancel
uses: ./.github/actions/thread-dump-post
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 25
distribution: 'temurin'
cache: maven
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y libxml2-utils
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: 18
- name: Run end-to-end tests of RDF4J Server and Workbench (${{ matrix.runtime.label }})
working-directory: ./e2e
run: exec ../scripts/ci/run-with-thread-dump.sh ./run.sh ${{ matrix.runtime.argument }}
frontend-unit-tests:
needs: formatting-and-quick-compile
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
cache-dependency-path: e2e/package-lock.json
- name: Install dependencies
working-directory: ./e2e
run: npm ci
- name: Run frontend unit tests
working-directory: ./e2e
run: npm run test:unit
copyright-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Register JVM thread dump on cancel
uses: ./.github/actions/thread-dump-post
- name: check copyright header present
run: scripts/checkCopyrightPresent.sh