-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
166 lines (146 loc) · 4.88 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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
include:
- project: "GNOME/citemplates"
file: "flatpak/flatpak_ci_initiative.yml"
- component: gitlab.gnome.org/GNOME/citemplates/release-service@master
inputs:
dist-job-name: "flatpak"
tarball-artifact-path: "${TARBALL_ARTIFACT_PATH}"
variables:
FLATPAK_MODULE: 'gnome-font-viewer'
variables:
BUNDLE: "org.gnome.Loupe.Devel.flatpak"
MANIFEST_PATH: "build-aux/flatpak/org.gnome.Loupe.Devel.json"
FLATPAK_MODULE: "loupe"
APP_ID: "org.gnome.Loupe.Devel"
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
TARBALL_ARTIFACT_PATH: ".flatpak-builder/build/${FLATPAK_MODULE}/_flatpak_build/meson-dist/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.tar.xz"
flatpak:
extends: ".flatpak@x86_64"
interruptible: true
variables:
# We are running tests manually
RUN_TESTS: "0"
CONFIG_OPTS: "-Dprofile=release -Dapp_id_suffix=.Devel"
flatpak@aarch64:
extends: ".flatpak@aarch64"
allow_failure: true
interruptible: true
variables:
RUN_TESTS: "0"
CONFIG_OPTS: "-Dprofile=release -Dapp_id_suffix=.Devel"
cargo-fmt:
image: "rust:slim"
interruptible: true
script:
- rustup component add rustfmt
- rustc -Vv && cargo -Vv
- cargo fmt --version
- cargo fmt --all -- --check
cargo-doc:
image: 'quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master'
interruptible: true
tags:
- flatpak
artifacts:
name: 'Code Documentation'
paths:
- doc
script:
# Report the installed versions of the runtime
- flatpak info org.gnome.Platform
- flatpak info org.gnome.Sdk
# Print the date, since appstream depends on local timezone
- date && date -u
- rewrite-flatpak-manifest ${MANIFEST_PATH} ${FLATPAK_MODULE} ${CONFIG_OPTS}
- flatpak-builder --user --disable-rofiles-fuse --force-clean --keep-build-dirs --stop-at=${FLATPAK_MODULE} flatpak_app ${MANIFEST_PATH}
- flatpak build-finish --socket=x11 --share=network flatpak_app
- >
xvfb-run -a -s "-screen 0 1024x768x24"
flatpak-builder --user --disable-rofiles-fuse --build-shell=${FLATPAK_MODULE} flatpak_app ${MANIFEST_PATH} <<END
ninja src/doc
END
- cp -r .flatpak-builder/build/${FLATPAK_MODULE}/_flatpak_build/src/doc doc
- chmod -R a=rwx doc
cargo-clippy:
image: 'quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master'
interruptible: true
allow_failure: true
tags:
- flatpak
script:
# Report the installed versions of the runtime
- flatpak info org.gnome.Platform
- flatpak info org.gnome.Sdk
# Print the date, since appstream depends on local timezone
- date && date -u
- rewrite-flatpak-manifest ${MANIFEST_PATH} ${FLATPAK_MODULE} ${CONFIG_OPTS}
- flatpak-builder --user --disable-rofiles-fuse --force-clean --keep-build-dirs --stop-at=${FLATPAK_MODULE} flatpak_app ${MANIFEST_PATH}
- flatpak build-finish --socket=x11 --share=network flatpak_app
- >
xvfb-run -a -s "-screen 0 1024x768x24"
flatpak-builder --user --disable-rofiles-fuse --build-shell=${FLATPAK_MODULE} flatpak_app ${MANIFEST_PATH} <<END
cargo clippy -- -D warnings
END
cargo-test:
image: 'quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master'
interruptible: true
tags:
- flatpak
script:
# Report the installed versions of the runtime
- flatpak info org.gnome.Platform
- flatpak info org.gnome.Sdk
# Print the date, since appstream depends on local timezone
- date && date -u
- rewrite-flatpak-manifest ${MANIFEST_PATH} ${FLATPAK_MODULE} ${CONFIG_OPTS}
- flatpak-builder --user --disable-rofiles-fuse --force-clean --keep-build-dirs --stop-at=${FLATPAK_MODULE} flatpak_app ${MANIFEST_PATH}
- flatpak build-finish --socket=x11 --share=network flatpak_app
- >
xvfb-run -a -s "-screen 0 1024x768x24"
flatpak-builder --user --disable-rofiles-fuse --build-shell=${FLATPAK_MODULE} flatpak_app ${MANIFEST_PATH} <<END
cargo test
END
cargo-audit:
interruptible: true
image: rust
allow_failure: true
script:
- cargo install cargo-deny --locked
- cargo deny check
cargo-vet:
image: "rust:slim"
allow_failure: true
interruptible: true
script:
- rustup component add rustfmt
- cargo install cargo-vet
- CARGO_BUILD_TARGET=x86_64-unknown-linux-gnu cargo vet
other-checks:
interruptible: true
image: alpine
script:
- apk add --no-cache git
- git ls-files 'src/*.rs' 'src/*.ui' 'data/*.ui' 'data/*.desktop.in*' '*.gschema.xml.in' '*.metainfo.xml.in*' > po/POTFILES.in
- git diff --exit-code
pages:
stage: deploy
dependencies:
- cargo-doc
script:
- mkdir public
- mv doc public
artifacts:
paths:
- public
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
nightly:
extends: ".publish_nightly"
stage: deploy
dependencies:
- flatpak
nightly@aarch64:
extends: ".publish_nightly"
stage: deploy
dependencies:
- flatpak@aarch64