-
Notifications
You must be signed in to change notification settings - Fork 1
/
.gitlab-ci.yml
139 lines (120 loc) · 2.58 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
stages:
- build
- test
- analyze
.setup-alpine:
before_script:
- apk add clang gcc meson libc-dev
.setup-ubuntu:
before_script:
- apt update && apt install -y clang curl gcc meson ninja-build
.build:
stage: build
script:
- mkdir build
- meson build . --prefix="${HOME}/dest" --warnlevel 3 --werror
- ninja -C build all
artifacts:
paths: [ build/ ]
.build-clang:
extends: .build
variables:
CC: clang
.build-gcc:
extends: .build
variables:
CC: gcc
.test:
stage: test
script:
ninja -C build test
build:alpine-latest:
image: alpine:latest
extends:
- .setup-alpine
- .build-gcc
image: alpine:latest
test:alpine-latest:
image: alpine:latest
extends:
- .setup-alpine
- .test
needs:
- build:alpine-latest
build:alpine-edge:
image: alpine:edge
extends:
- .setup-alpine
- .build-gcc
test:alpine-edge:
image: alpine:edge
extends:
- .setup-alpine
- .test
needs:
- build:alpine-edge
build:ubuntu-1604-clang:
image: ubuntu:16.04
extends:
- .build-clang
- .setup-ubuntu
variables:
CFLAGS: -Wno-padded -Wno-packed
test:ubuntu-1604-clang:
image: ubuntu:16.04
extends:
- .setup-ubuntu
- .test
needs:
- build:ubuntu-1604-clang
build:ubuntu-1604-gcc:
image: ubuntu:16.04
extends:
- .build-gcc
- .setup-ubuntu
test:ubuntu-1604-gcc:
image: ubuntu:16.04
extends:
- .setup-ubuntu
- .test
needs:
- build:ubuntu-1604-gcc
build:ubuntu-1910-clang:
image: ubuntu:19.10
extends:
- .setup-ubuntu
- .build-clang
test:ubuntu-1910-clang:
image: ubuntu:19.10
extends:
- .setup-ubuntu
- .test
needs:
- build:ubuntu-1910-clang
build:ubuntu-1910-gcc:
image: ubuntu:19.10
extends:
- .setup-ubuntu
- .build-gcc
test:ubuntu-1910-gcc:
image: ubuntu:19.10
extends:
- .setup-ubuntu
- .test
needs:
- build:ubuntu-1910-gcc
coverity:
image: ubuntu:19.10
extends: .setup-ubuntu
stage: analyze
only:
refs:
- master
dependencies: []
script:
- curl https://scan.coverity.com/download/linux64 --form project=$COVERITY_PROJECT --form token=$COVERITY_TOKEN | tar xz
- mkdir build
- meson build .
- cov-analysis-linux64-*/bin/cov-build --dir cov-int ninja -C build all
- tar czf cov-int.tar.gz cov-int
- curl https://scan.coverity.com/builds?project=$COVERITY_PROJECT --form token=$COVERITY_TOKEN --form email=$GITLAB_USER_EMAIL --form file=@cov-int.tar.gz --form version=$CI_COMMIT_SHA --form description="$CI_COMMIT_SHA / $CI_COMMIT_TITLE / $CI_COMMIT_REF_NAME:$CI_PIPELINE_ID"