-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
124 lines (110 loc) · 3 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:
- remote: "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/raw/master/ci/images_template.yml"
stages:
- "lint"
- "test"
- "extras"
.base:
image: "registry.freedesktop.org/gstreamer/gstreamer-rs/debian/10:$RUST_VERSION-$GST_RS_IMG_TAG"
variables:
# Only stuff inside the repo directory can be cached
# Override the CARGO_HOME variable to force its location
CARGO_HOME: "${CI_PROJECT_DIR}/.cargo_home"
G_DEBUG: "fatal_warnings"
before_script:
- source ./ci/env.sh
- mkdir .cargo && echo -e "[net]\ngit-fetch-with-cli = true" > .cargo/config
# If cargo exists assume we probably will want to update the lockfile
- |
if command -v cargo; then
cargo generate-lockfile
cargo update
fi
cache:
key: "gst"
paths:
- "${CARGO_HOME}"
.img-stable:
extends: .base
variables:
RUST_VERSION: "stable"
.img-1-41:
extends: .base
variables:
RUST_VERSION: "1.41.0"
.img-nightly:
extends: .base
variables:
RUST_VERSION: "nightly"
.cargo test:
stage: "test"
script:
- rustc --version
- cargo --version
- cargo build --locked --all --color=always
# FIXME: tests are broken
# https://github.com/sdroege/gstreamer-sys/issues/16
# - cargo test --locked --all --color=always
- cargo build --locked --all --all-features --color=always
# FIXME: tests are broken
# https://github.com/sdroege/gstreamer-sys/issues/16
# - cargo test --locked --all --all-features --color=always
# Run tests for crates we can currently run. The others
# need a new release of the C library first
- |
for crate in gstreamer-app-sys \
gstreamer-audio-sys \
gstreamer-base-sys \
gstreamer-check-sys \
gstreamer-gl-sys \
gstreamer-mpegts-sys \
gstreamer-net-sys \
gstreamer-pbutils-sys \
gstreamer-player-sys \
gstreamer-rtsp-sys \
gstreamer-sdp-sys \
gstreamer-sys \
gstreamer-tag-sys \
gstreamer-video-sys \
gstreamer-webrtc-sys; \
do \
cargo test --locked -p $crate; \
done
test stable:
extends:
- '.cargo test'
- .img-stable
test 1.41:
extends:
- '.cargo test'
- .img-1-41
test nightly:
extends:
- '.cargo test'
- .img-nightly
rustfmt:
extends: .img-stable
stage: "lint"
script:
- cargo fmt --version
- cargo fmt -- --color=always --check
check commits:
extends: .img-stable
stage: "lint"
script:
- ci-fairy check-commits --textwidth 0 --no-signed-off-by
outdated:
extends: .img-stable
allow_failure: true
stage: 'extras'
only:
- schedules
script:
- cargo outdated --root-deps-only --exit-code 1 -v
deny:
extends: .img-stable
stage: 'extras'
only:
- schedules
script:
- cargo deny check