gstreamer-rs/.gitlab-ci.yml
Sebastian Dröge 01a98ecdbb Run stable clippy in gitlab CI again and also build all features on stable
Now that futures are stable in 1.36 we can do that again.
2019-07-06 10:36:10 +03:00

97 lines
2.5 KiB
YAML

stages:
- "lint"
- "test"
- "extras"
.tarball_setup:
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"
DEPENDENCIES: |
curl
libssl-dev
liborc-0.4-dev
libglib2.0-dev
libxml2-dev
libgtk-3-dev
libegl1-mesa
libgles2-mesa
libgl1-mesa-dri
libgl1-mesa-glx
libwayland-egl1-mesa
before_script:
- apt-get update -yqq
- apt-get install -yqq --no-install-recommends $DEPENDENCIES
- mkdir -p precompiled-gst && cd precompiled-gst
- curl -L https://people.freedesktop.org/~slomo/gstreamer-1.16.0.tar.gz | tar xz
- sed -i "s;prefix=/root/gstreamer;prefix=$PWD/gstreamer;g" $PWD/gstreamer/lib/x86_64-linux-gnu/pkgconfig/*.pc
- export PKG_CONFIG_PATH=$PWD/gstreamer/lib/x86_64-linux-gnu/pkgconfig
- export GST_PLUGIN_SYSTEM_PATH=$PWD/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0
- export GST_PLUGIN_SCANNER=$PWD/gstreamer/libexec/gstreamer-1.0/gst-plugin-scanner
- export PATH=$PATH:$PWD/gstreamer/bin
- export LD_LIBRARY_PATH=$PWD/gstreamer/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
- cd "${CI_PROJECT_DIR}"
cache:
key: "gst"
paths:
- "${CARGO_HOME}"
.cargo test:
extends: '.tarball_setup'
stage: "test"
script:
- rustc --version
- cargo build --color=always --all
- G_DEBUG=fatal_warnings cargo test --color=always --all
- |
if [ -n "$ALL_FEATURES" ]; then
cargo build --color=always --all --all-features
G_DEBUG=fatal_warnings cargo test --color=always --all --all-features
fi
test 1.34:
# 1.34 img
# https://hub.docker.com/_/rust/
image: "rust:1.34-slim"
extends: '.cargo test'
test stable:
# Stable img
# https://hub.docker.com/_/rust/
image: "rust:slim"
variables:
ALL_FEATURES: 'yes'
extends: '.cargo test'
test nightly:
# Nightly
# https://hub.docker.com/r/rustlang/rust/
image: "rustlang/rust:nightly-slim"
allow_failure: true
variables:
ALL_FEATURES: 'yes'
extends: '.cargo test'
rustfmt:
image: "rust:slim"
stage: "lint"
script:
- rustup component add rustfmt
- cargo fmt --version
- cargo fmt -- --color=always --check
clippy:
extends: '.tarball_setup'
image: "rust:slim"
stage: 'extras'
allow_failure: true
script:
- rustup component add clippy-preview
- cargo clippy --version
- cargo clippy --color=always --all --all-features