-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy path.gitlab-ci.yml
125 lines (117 loc) · 3.53 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
include:
- component: gitlab.gnome.org/GNOME/citemplates/release-service@master
inputs:
job-stage: release
dist-job-name: build-full
tarball-artifact-path: "_build/meson-dist/$CI_PROJECT_NAME-$CI_COMMIT_TAG.tar.xz"
stages:
- review
- build
- analysis
- deploy
- release
potfile_check:
image: fedora:latest
stage: review
script:
- ./.gitlab-ci/check-potfiles.sh
build:
image: fedora:latest
stage: build
before_script:
- dnf update -y
- dnf -y install
meson gcc dbus-devel glib2-devel gobject-introspection-devel
gtk4-devel rest-devel vala
script:
- meson setup -Ddocumentation=false -Dgoabackend=false _build
- meson compile -C _build
- meson test -C _build
- meson install -C _build
build-full:
image: fedora:latest
stage: build
before_script:
- dnf update -y
- dnf -y install dnf-plugins-core
meson git gcc dbus-devel docbook-style-xsl gcr-devel gi-docgen glib2-devel
gobject-introspection-devel gtk4-devel json-glib-devel krb5-devel
libadwaita-devel libsecret-devel libsoup3-devel rest-devel vala
- dnf -y builddep gtk4 libadwaita
script:
- meson setup -Ddocumentation=true
-Dfedora=true
_build
- meson compile -C _build
- meson test -C _build
- meson install -C _build
- meson dist -C _build
artifacts:
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
paths:
- _build/doc
- _build/meson-dist/*.tar.xz
clang-analyzer:
image: fedora:latest
stage: analysis
variables:
# Warnings from dependencies are irrelevant here
CFLAGS: "-Wno-strict-prototypes -Wno-deprecated-declarations"
before_script:
- dnf update -y
- dnf -y install dnf-plugins-core
clang clang-analyzer meson git gcr-devel dbus-devel gi-docgen glib2-devel
gobject-introspection-devel gtk4-devel krb5-devel libadwaita-devel
libsecret-devel rest-devel vala
- dnf -y builddep gtk4 libadwaita
script:
- meson setup --buildtype=debug
-Dfedora=true
-Ddocumentation=false
-Dintrospection=false
-Dman=false
-Dwerror=true
_scan_build
- export SCANBUILD="$PWD/.gitlab-ci/scanbuild-wrapper.sh"
- ninja -C _scan_build scan-build
after_script:
- .gitlab-ci/scanbuild-plist-to-junit.py _scan_build/meson-logs/scanbuild/ > _scan_build/junit-scan-build.xml
artifacts:
paths:
- _scan_build/meson-logs
reports:
junit: "_scan_build/junit-scan-build.xml"
allow_failure: true
gcc-analyzer:
image: fedora:latest
stage: analysis
variables:
# `-Wanalyzer-null-*` is absurd, and the others are irrelevant here
CFLAGS: "-fanalyzer -Wno-analyzer-null-argument -Wno-analyzer-null-dereference -Wno-strict-prototypes -Wno-deprecated-declarations"
before_script:
- dnf update -y
- dnf -y install dnf-plugins-core
meson git gcc gcr-devel dbus-devel glib2-devel gobject-introspection-devel
gtk4-devel krb5-devel libadwaita-devel libsecret-devel rest-devel vala
- dnf -y builddep gtk4 libadwaita
script:
- meson setup --buildtype=debug
-Dfedora=true
-Ddocumentation=false
-Dman=false
-Dwerror=true
_build
- meson compile -C _build
allow_failure: true
pages:
stage: deploy
dependencies:
- build-full
script:
- mv _build/doc/gnome-online-accounts/Goa-1.0 public
artifacts:
paths:
- public
only:
- master