-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
146 lines (124 loc) · 2.18 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
145
146
image: reg.handtruth.com/roots/kotlin/build
stages:
- build
- testPlatform
- testGroup
- test
- analysis
- package
- deploy
cache:
paths:
- .gradle
variables:
GRADLE_USER_HOME: "$CI_PROJECT_DIR/.gradle"
GIT_SUBMODULE_STRATEGY: normal
GRADLE: ./gradlew -Pci --console=plain --no-daemon --max-workers=1 --stacktrace
assemble:
stage: build
script:
- $GRADLE assemble
artifacts: &artifacts
paths:
- build
- 'modules/*/build'
.test: &test
script:
- $GRADLE $CI_JOB_NAME
artifacts: *artifacts
.platformTest: &platformTest
<<: *test
stage: testPlatform
needs:
- assemble
artifacts:
reports:
junit:
- 'modules/*/build/test-results/$CI_JOB_NAME/TEST-*.xml'
jvmTest: *platformTest
jsBrowserTest: *platformTest
jsNodeTest: *platformTest
linuxX64Test: *platformTest
testDebugUnitTest: *platformTest
testReleaseUnitTest: *platformTest
.groupTest: &groupTest
<<: *test
stage: testGroup
jsTest:
<<: *groupTest
needs:
- jsNodeTest
- jsBrowserTest
androidTest:
stage: testGroup
needs:
- testDebugUnitTest
- testReleaseUnitTest
script:
- $GRADLE test
artifacts: *artifacts
allTest:
<<: *test
stage: test
needs:
- jvmTest
- jsTest
- androidTest
- linuxX64Test
cache:
policy: pull
lint:
stage: test
script:
- $GRADLE ktlintCheck
needs:
- assemble
cache:
policy: pull
androidLint:
stage: test
script:
- $GRADLE lint
needs:
- assemble
cache:
policy: pull
coverage:
stage: analysis
script:
- $GRADLE rootTestCoverageReport
- cat build/reports/jacoco/rootTestCoverageReport/html/index.html || true
coverage: "/Total.*?([0-9]{1,3})%/"
artifacts: *artifacts
needs:
- jvmTest
mavenSnapshot:
stage: package
script:
- $GRADLE publish
needs:
- assemble
cache:
policy: pull
mavenRelease:
stage: package
script:
- $GRADLE publishToMavenLocal
tags: [ package ]
only: [ tags ]
needs:
- assemble
cache:
policy: pull
pages:
stage: package
script:
- $GRADLE gitlabPagesCreate
only: [ tags ]
needs:
- coverage
artifacts:
paths:
- public
cache:
policy: pull