-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
144 lines (124 loc) · 2.9 KB
/
.gitlab-ci.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
stages:
- lib-build
- lib-test
- lib-publish
- server-build
- server-test
- server-publish
- client-build
- client-test
- client-publish
- test
- finalize
cache:
key: ${CI_PROJECT_ID}
paths:
- .gradle
default:
image: openjdk:17
before_script:
- chmod +x gradlew
.buildstage:
script:
- ./gradlew ${GRADLE_MODULE}:publishToMavenLocal
artifacts:
paths:
- ./*/build
expire_in: 1 week
.teststage:
script:
- ./gradlew ${GRADLE_MODULE}:check
artifacts:
paths:
- ./*/build/reports/*
reports:
junit:
- ./*/build/test-results/test/**/TEST-*.xml
.publishstage:
script:
- ./gradlew ${GRADLE_MODULE}:publish
artifacts:
paths:
- ./*/build/libs/
expire_in: 1 month
only:
- tags
.dockerstage:
image: docker:20
tags:
- docker
script:
- docker login docker.menkalian.de --username $DOCKER_REG_USER --password $DOCKER_REG_PASSWORD
- cd $GRADLE_MODULE
- docker build -t docker.menkalian.de/crater/${GRADLE_MODULE}:${CI_COMMIT_SHORT_SHA} .
- docker tag docker.menkalian.de/crater/${GRADLE_MODULE}:${CI_COMMIT_SHORT_SHA} docker.menkalian.de/crater/${GRADLE_MODULE}:latest
- docker push docker.menkalian.de/crater/${GRADLE_MODULE}:${CI_COMMIT_SHORT_SHA}
- docker push docker.menkalian.de/crater/${GRADLE_MODULE}:latest
only:
- tags
shared-data-build:
stage: lib-build
variables:
GRADLE_MODULE: shared-data
extends: .buildstage
shared-data-test:
stage: lib-test
variables:
GRADLE_MODULE: shared-data
extends: .teststage
shared-data-publish:
stage: lib-publish
variables:
GRADLE_MODULE: shared-data
extends: .publishstage
server-server-build:
stage: server-build
variables:
GRADLE_MODULE: server-server
extends: .buildstage
server-server-test:
stage: server-test
variables:
GRADLE_MODULE: server-server
extends: .teststage
server-server-publish:
stage: server-publish
variables:
GRADLE_MODULE: server-server
extends: .publishstage
server-server-docker:
stage: server-publish
variables:
GRADLE_MODULE: server-server
extends: .dockerstage
client-baseclient-build:
stage: client-build
variables:
GRADLE_MODULE: client-baseclient
extends: .buildstage
client-baseclient-test:
stage: client-test
variables:
GRADLE_MODULE: client-baseclient
extends: .teststage
client-baseclient-publish:
stage: client-publish
variables:
GRADLE_MODULE: client-baseclient
extends: .publishstage
pages:
stage: finalize
only:
- tags
script:
- ./gradlew dokkaHtmlMultiModule
- cp -r build/dokka/htmlMultiModule public
artifacts:
paths:
- public
include:
- template: Security/SAST.gitlab-ci.yml
spotbugs-sast:
stage: test
variables:
SAST_JAVA_VERSION: 11