-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy path.travis.yml
363 lines (341 loc) · 14.7 KB
/
.travis.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
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
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
git:
quiet: true
depth: false
notifications:
email: false
env:
global:
# github-api-v3-gateway app requires github token
- secure: "PLL6z6iFOkP1zcJt2R7Yq8ut1313FX70opXUrC7/O0HUEgQdU1q77McSjxxyY4AtzvT+XPgbGNAx5JXuVpHyQ4rnM1Q/3HBz7E2ZHr+71ehLap95x9XKkwShw/Can9IYu66FUGm7sOdN2b01JOpH4IKR50tGeUY9dWzdld10f/Se5KaRjCtzCKsMyMPm02dhUvxvzLn0VWNQDuZC2hAsLsBGOBKc9cGcI03b0u98We8lqyaJ6FT6j0Fjd4t3CycOVR+0XrVbEJ3tFaILmSZoer+N76vqnY42sTyHfbNUPyJboZshy8A19AAngebw4yJWKaHQ+B3eowLcpDRoR32SYnFHgDMtDLLsKMVZeGBvUazORgQpl5YKQeInOKbSku796ZiWz7ciGsCm52ve9dymlX+PUzkfA9J9ylK4XRl9/yLNFfqtjmWLRkP0+V3qRtwCnLU3yd5ZQ7D8t1dhSNJHddvC75oH6Cn/KFOk+4h6jjo+hXOj64ZcjJF8bvYLbdhlFNbNdmq8I9MT0qge95UcufJ9pJk42PL1ojAmxw2REACdW3MMPfcSWukQAuzOgPeZYAjQ9zUIFBqkrrbH2j4Eo+wEq+wwxsgcmBSAkgjdLR9Ni1x/RcqrO1kZ3fXbIr/1P8XXF9d1l0oMDgNjgt64MVT0wwNyxOEPBwGXUO3TkFw="
- TERM=dumb
language: java
jdk: openjdk8
node_js: lts/*
python: 3.8
service:
- docker
- xvfb
addons:
apt:
update: true
sources:
- google-chrome
packages:
- google-chrome-stable
- libappindicator1
- fonts-liberation
- libxml2-utils
- docker-ce
- sudo
- lsof
- wget
- bash
- curl
- jq
- unzip
- httpie
install: true
before_install:
- export CHROME_BIN=/usr/bin/google-chrome
- export DISPLAY=:99.0
#
- http --version --debug
- docker-compose -v
#
- source <(curl -fsSL https://raw.github.com/daggerok/bash-functions/master/main.bash)
- stop_any 8080 3000 80 5672 5432 27017 9200 9300 5601 8001 8002 8080 80
#
- java -version
- ./gradlew -v
- ./mvnw -v
- node -v
before_cache:
- bash -c 'for item in $(find ~/.gradle -name "*.lock"); do sudo rm -rf $item ; done'
cache:
packages: true
directories:
- ~/.m2
- ~/.gradle
- ~/.docker
jobs:
include:
- stage: test
name: redis-store
script:
- cd $TRAVIS_BUILD_DIR/
- ./gradlew -p redis-store clean installDist
- bash $TRAVIS_BUILD_DIR/redis-store/lettuce/build/install/lettuce/bin/lettuce
- ./mvnw -f $TRAVIS_BUILD_DIR/redis-store
- java -jar $TRAVIS_BUILD_DIR/redis-store/lettuce/target/*-all.jar
- stage: test
name: spring-webflux-cassandra
script:
- cd $TRAVIS_BUILD_DIR/
- ./gradlew -b $TRAVIS_BUILD_DIR/spring-webflux-cassandra/build.gradle
- bash $TRAVIS_BUILD_DIR/spring-webflux-cassandra/build/libs/*.jar &
- wait_for 8080
- http :8080/
- stop_any 8080
#
- ./mvnw -f $TRAVIS_BUILD_DIR/spring-webflux-cassandra
- bash $TRAVIS_BUILD_DIR/spring-webflux-cassandra/target/*.jar &
- wait_for 8080
- http :8080/
- stop_any 8080
- stage: test
name: spring-data-jpa-count-query-fix
script:
- cd $TRAVIS_BUILD_DIR/
- ./gradlew -b $TRAVIS_BUILD_DIR/spring-data-jpa-count-query-fix/build.gradle
- java -jar $TRAVIS_BUILD_DIR/spring-data-jpa-count-query-fix/build/libs/*.jar &
- wait_for 8080
- http :8080/api/orders/
- http :8080/api/
- http :8080/
- stop_any 8080
- stage: test
name: infinispan
script:
# infinispan-example plain
- cd $TRAVIS_BUILD_DIR/infinispan-example
- ./mvnw
- ./gradlew
- java -jar ./infinispan-service/build/libs/*.jar &
- java -jar ./infinispan-service/target/*.jar --server.port=8000 &
- wait_for 8080 8000
- http :8080
- http :8080 message=ololo\ 1
- http :8080 message=trololo\ 1
- http :8080/all
- http :8000
- http :8000 message=ololo-2
- http :8000 message=trololo-2
- http :8000/all
- stop_any 8080 8000
# infinispan-example docker
- docker-compose -f docker-compose-maven.yaml build --force-rm --no-cache --pull
- docker-compose -f docker-compose-maven.yaml up --force-recreate --remove-orphans &
- sleep 30
- http :8080
- http :8080 message=ololo
- http :8080 message=trololo
- http :8080/all
- docker-compose -f docker-compose-maven.yaml down -v
# infinispan-example gradle docker
- bash gradlew composeUp
- http :8080
- http :8080 message=ololo
- http :8080 message=trololo
- http :8080/all
- bash gradlew composeDown
- stage: test
name: spring-data-history-audit
script:
- cd $TRAVIS_BUILD_DIR/spring-data-history-audit
- ./mvnw
- ./gradlew
- docker-compose build --force-rm --no-cache --pull
- docker-compose up --force-recreate --remove-orphans &
- sleep 30
- http put :8080/my-entities/1 value=ololo
- http put :8080/my-entities/1 value=trololo
- http put :8080/my-entities/1 value=ho-ho-ho
- http get :8080/my-entities
- http get :8080/my-entities-history
- docker-compose down -v
- stage: test
name: lazy-baybe
script:
- >
for path in \
spring-data-hazelcast \
key-value-hazelcast \
shadov \
key-value \
; do
cd $TRAVIS_BUILD_DIR/$path ;
bash gradlew clean build -Ddocker=compose-travis ;
done ;
- stage: test
name: spring-data-hazelcast
script:
- cd $TRAVIS_BUILD_DIR/spring-data-hazelcast
- ./gradlew assemble
- ./gradlew bootRun &
- sleep 30
- http :8080
- http :8080/not-found
- http http :8080/any/ma
- http post :8080 name=Maximus username=xxx
- http :8080/any/Ma
- stop_any 8080 8080 80
- stage: test
name: key-value-hazelcast
script:
- cd $TRAVIS_BUILD_DIR/key-value-hazelcast
- ./gradlew assemble
- ./gradlew bootRun &
- sleep 25
- http :8080
- http :8080/not-found
- http :8080/ name=max1
- http post :8080/max2
- http :8080/
- stop_any 8080 8080 80
- stage: test
name: key-value
script:
- cd $TRAVIS_BUILD_DIR/key-value
- ./gradlew assemble
- ./gradlew bootRun &
- sleep 15
- curl http://localhost:8080/ | jq .
- stop_any 8080 8080 80
- stop_any 8080 8080 80
- stage: test
name: elastic
script:
# 4. elastic
- cd $TRAVIS_BUILD_DIR/elastic
- ./gradlew assemble composeUp -Ddocker=compose-travis-all
- curl http://localhost/
- curl http://localhost:8001/
- curl http://localhost:8001/users
- curl -u elastic:changeme http://localhost:9200/_cat/health
- ./gradlew composeDown -Ddocker=compose-travis-all
- stage: test
name: QueryDSL
script:
# 3. QueryDSL:
- cd "$TRAVIS_BUILD_DIR/querydsl"
- ./gradlew clean test build
# QueryDSL: test and build
- docker-compose -f soaptest/rest-service/src/docker/docker-compose.yml up -d --build
- docker-compose -f soaptest/rest-service/src/docker/docker-compose.yml down -v
- docker-compose -f soaptest/ws-service/src/docker/docker-compose.yml up -d --build
- docker-compose -f soaptest/ws-service/src/docker/docker-compose.yml down -v
# QueryDSL: run rest
- ./gradlew :docker:dockerUp
- sudo mkdir -p /var/rest-service
- sudo mv -f services/rest-service/build/libs/*.jar /var/rest-service/rest-service.jar
- sudo ln -s /var/rest-service/rest-service.jar /etc/init.d/rest-service
- sudo service rest-service start
# QueryDSL: manual rest api tests
- sleep 15
- curl -sS localhost:8080/api/v1/domains | jq .
- curl -sS localhost:8080/api/v2/flatten/2 | jq .
- curl -sS localhost:8080/api/v2/flatten | jq .
- curl -sS localhost:8080/api/v2/sorted\?sort=id,desc | jq .
- curl -sS localhost:8080/api/v2/pagination\?page=0\&size=1\&sort=first.firstField1,desc | jq .
- curl -sS localhost:8080/api/v3/predicate | jq .
- curl -sS localhost:8080/api/v3/predicate\?second.secondField1=1 | jq .
- curl -sS localhost:8080/api/v3/predicate\?createdDate=$(date +%Y-%m-%d) | jq .
- curl -sS localhost:8080/api/v4/engineers | jq .
- curl -sS localhost:8080/api/v4/engineers\?size=2\&page=0\&sort=username,desc | jq .
- curl -sS localhost:8080/api/v4/engineers/any\?emails=u1@com,u3@mail.com | jq .
- curl -sS localhost:8080/api/v4/engineers/any\?emails=u3@mail.com,u2.1@mail.com | jq .
- curl -sS localhost:8080/rest/domains -H'content-type:application/json' -d '{"firstName":"1","lastName":"1","username":"1"}' | jq '._links.self'
- curl -sS localhost:8080/rest/domains -H'content-type:application/json' -d '{"firstName":"2","lastName":"2","username":"2"}' | jq '._links.self'
- curl -sS localhost:8080/rest/otherDomains -H'content-type:application/json' -d '{"test":"1"}' | jq '._links.self'
- curl -sS localhost:8080/rest/histories | jq '.page.totalElements'
- curl -sS localhost:8080/rest/engineers -H'content-type:application/json' -d '{"username":"tttest"}' | jq '._links.self'
- curl -sS localhost:8080/rest/histories | jq '.page.totalElements'
- curl -sS localhost:8080/api/v5/engineers/page-info -H'accept:application/json' | jq .
- curl -sS localhost:8080/api/v6 | jq .
- curl -sS localhost:8080/api/v6/catalog | jq .
- curl -sS localhost:8080/api/v6/catalog\?size=1 | jq .
- curl -sS localhost:8080/api/v6/enum-collection/TEST_ENTITY_1 | jq .
- curl -sS localhost:8080/api/v6/enum-collection/TEST_ENTITY_2 | jq .
- curl -sS localhost:8080/api/v6/enum-collection/not-found | jq .
- curl -sS localhost:8080/api/v6/map-catalog/type/not-found | jq .
- curl -sS localhost:8080/api/v6/map-catalog/type/TEST_ENTITY_2 | jq .
- curl -sS localhost:8080/api/v6/map-catalog/status/NOK | jq .
- curl -sS localhost:8080/api/v6/map-catalog/status/OK | jq .
- curl -sS localhost:8080/api/v6/map-catalog/status/OK\?size=1 | jq .
- curl -sS localhost:8080/api/v6/jpa-enum | jq .
- curl -sS localhost:8080/api/v6/jpa-enum\?size=1 | jq .
- sudo service rest-service stop
- bash gradlew :docker:dockerDown
# QueryDSL: run ws
- ./gradlew :docker:dockerUp
- sudo mkdir -p /var/ws-service
- sudo mv -f services/ws-service/build/libs/*.jar /var/ws-service/ws-service.jar
- sudo ln -s /var/ws-service/ws-service.jar /etc/init.d/ws-service
- sudo service ws-service start
- sleep 15
- curl --header "content-type:text/xml" -d @services/ws-service/src/test/resources/request.xml http://localhost:8080/ws | xmllint --format -
- sudo service ws-service stop
- ./gradlew :docker:dockerDown
# QueryDSL: run SoapUI tests
- ./gradlew clean assemble soaptestRest soaptestWs
- ./gradlew clean assemble testrunner
- ./gradlew --stop
- stage: test
name: SPEL
script:
# 2. SPEL
- cd $TRAVIS_BUILD_DIR/spel/
- ./gradlew
- ./gradlew composeUp
- sudo mkdir -p /var/spel-app
- sudo mv -f ./app/build/libs/*.jar /var/spel-app/spel-app.jar
- sudo ln -s /var/spel-app/spel-app.jar /etc/init.d/spel-app
- sudo service spel-app start
- sleep 10
- wait_for 8080
- curl -sS localhost:8080/all | jq .
- curl -sS localhost:8080/names | jq .
- sudo service spel-app stop
- ./gradlew --stop
- stage: test
name: redis
script:
# 1. redis
- cd $TRAVIS_BUILD_DIR/redis/
- ./gradlew clean build
# redis: docker
- docker-compose -f ./docker/src/docker-compose.yml up -d --build
- docker-compose -f ./docker/src/docker-compose.yml down -v
# redis: manual redis-app tests
- ./gradlew composeUp
- sudo mkdir -p /var/redis-app
- sudo mv -f ./redis/build/libs/*.jar /var/redis-app/redis-app.jar
- sudo ln -s /var/redis-app/redis-app.jar /etc/init.d/redis-app
- sudo service redis-app start
- sleep 20
- curl -sS localhost:8080/redisObjs -H'content-type:application/json' -d'{"data":"test"}' | jq .
- curl -sS localhost:8080/redisObjs | jq .
- sudo service redis-app stop
- ./gradlew composeDown
# redis: manual embedded-redis-app tests
- sudo mkdir -p /var/embedded-redis-app
- sudo mv -f ./embedded-redis/build/libs/*.jar /var/embedded-redis-app/embedded-redis-app.jar
- sudo ln -s /var/embedded-redis-app/embedded-redis-app.jar /etc/init.d/embedded-redis-app
- sudo service embedded-redis-app start
- sleep 30
- curl -sS localhost:8082/embeddedRedisObjs -H'content-type:application/json' -d'{"data":"test-embedded"}' | jq .
- curl -sS localhost:8082/embeddedRedisObjs | jq .
- sudo service embedded-redis-app stop
- ./gradlew --stop
- stage: deploy
name: redis
script: skip
before_deploy:
- cd $TRAVIS_BUILD_DIR/
- ./mvnw -Pdocs
env:
- secure: dAdJ3LAZr+wDuZIbra9yh2za4sYja3nBe6OfNVqQSq45Qfi6TCaR65FdxxexTw798DHcBhMMIoF43bD964nHdzUDBE25PRaGn1B+cQGl1UI1ds6/vJ0G8g1Djy5AJqXZ7eJud+nWdfdHHLSGdERuWuLXvdPEQgrrTd4F/7Wj/gp2xQgdyIp8lLvD6MOsq6brfdumzkyf5/TUETmeot05NaprBFnoL+ILi+kNFqZPcQmpm6YgSbUvwGibpNLGE4U7qvzsHU1gIYjuWhbXXNe1NjwSgQ9hK/D80JUAqK7B+735abw2GTLbWpXXevt5MXhh0MRFzISEHKQQUVWKQYuzMb1LQqYWF+SmdKW7N2x95t4dA6H841y4K4PeYuNbR2VFiYYc8F1pmLoNE0UCgDW7drgnfRo20A3MNuwMakDqZ3TGlEjQ3X9DXCrRoBW8eNgwXu4ZXYTLuykXYbLMNrjxx9iEiAHlX3IN2ez8PV3cSLC8uMyNNA/2ECxVRE+6mRRZROg2v8XHn9fcO3oDJ94S7OtwFY2Y2jneVRSN1dZ/cA5HCrmBzW138lfdRyAwjirArgttyAlxBtX8+hXZ02sUAFdGzGdRExnQzoPVxbaNMpbv8lrzmQZC8HCeS+GNR5q5V2jWdHkFu3WaPH32aj4uuafcBChwwW9HffxJumCiR2Q=
- secure: N19h/iVKmx9lY4zvTdp3idPJWe06oJMNEkllLc3A//UsU570kYxYP5uy1Dn/eTvK6sqvTQKuv6p8mg4KbR8mOexxuXm009IA5m4Y1cKbnlIWZsFaHxsXZuBFFnFes8Zh1Kscs3ak8DCVnxzUxI/gb1M4aUAUoOgaeoQm1Y9YRjPMWJ7Lll3hf7lRcUrsSyNbMsRFSZT3Ktiq2POvbVnXVZ2HajTntmFLjKajjDeNVSVU+OkjqeuzyFfYgIuENnr0JGjhDYtS4NTa+Rn66OKT6hZGYzkxy2MkYaYlXNplv9L1J4zeWxD1w0c6s3kCTEY6Hbj9sYySdl9WfyVgErQmeURGzJ23F6SfFyBYWYpcbNqd0toCkzGMGSnzyCA4IG3HgbKekTiQjPbzRfHed6MP35g33mQo00JQ9B1duMtbdGyywOyM8WQJunq31pXraqqkX4nM8Ias46bevPvTs3g08/LPs2ZITChThvtr/LVjFs5Ahyvf1Yencg/MbVW6uRyw3GzsTQc2/tsMB+9Y4igx4O2VuCxmxqnzYISquRS2af8G+HZnR7MfhQaZtyxtHqpjIC8e7mUjyW38BlD76hpUk6cZoLp0ysw0e7DRMgGJL41P+jbeweehKQpEyGfdAJKvYlJ0qPM6pT+tNGpoHlvShEJ6mFmgTrDoXfQh+MPAuZ0=
deploy: &pages
provider: pages
skip-cleanup: true
# travis encrypt GITHUB_TOKEN=<your github repo token> --add
github-token: "$GITHUB_TOKEN"
keep-history: true
on:
branch: master
local-dir: target/generated-docs
target_branch: gh-pages
env:
global:
- TERM=dumb