mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2024-06-09 01:39:22 +00:00
dd5b24fcc9
We are caching $CARGO_HOME in between runs, so an arbitrary cargo audit binary might already exist in the environment. Force install it so cargo doesn't complain and our binary is guaranteed "fresh".
102 lines
2.7 KiB
YAML
102 lines
2.7 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"
|
|
SODIUM_USE_PKG_CONFIG: "true"
|
|
DEPENDENCIES: |
|
|
curl
|
|
file
|
|
libsodium-dev
|
|
libssl-dev
|
|
liborc-0.4-dev
|
|
libglib2.0-dev
|
|
libgdk-pixbuf2.0-dev
|
|
libgtk-3-dev
|
|
libxml2-dev
|
|
libegl1-mesa
|
|
libgles2-mesa
|
|
libgl1-mesa-dri
|
|
libgl1-mesa-glx
|
|
libwayland-egl1-mesa
|
|
xz-utils
|
|
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.1.tar.xz | tar xJ
|
|
- 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
|
|
- cargo build --color=always --all --examples --all-features
|
|
- G_DEBUG=fatal_warnings cargo test --color=always --all --examples --all-features
|
|
|
|
test 1.36:
|
|
# 1.36 img
|
|
# https://hub.docker.com/_/rust/
|
|
image: "rust:1.36-slim-buster"
|
|
extends: '.cargo test'
|
|
|
|
test stable:
|
|
# Stable img
|
|
# https://hub.docker.com/_/rust/
|
|
image: "rust:slim-buster"
|
|
extends: '.cargo test'
|
|
|
|
test nightly:
|
|
# Nightly
|
|
# https://hub.docker.com/r/rustlang/rust/
|
|
image: "rustlang/rust:nightly-buster-slim"
|
|
allow_failure: true
|
|
extends: '.cargo test'
|
|
|
|
rustfmt:
|
|
image: "rust:slim-buster"
|
|
stage: "lint"
|
|
script:
|
|
- rustup component add rustfmt
|
|
- cargo fmt --version
|
|
- cargo fmt -- --color=always --check
|
|
|
|
clippy:
|
|
extends: '.tarball_setup'
|
|
image: "rust:slim-buster"
|
|
stage: 'extras'
|
|
script:
|
|
- rustup component add clippy-preview
|
|
- cargo clippy --color=always --all --all-features -- -A clippy::redundant_pattern_matching -A clippy::single_match -A clippy::cast_lossless
|
|
|
|
audit:
|
|
extends: '.tarball_setup'
|
|
image: "rust:slim-buster"
|
|
stage: 'extras'
|
|
only:
|
|
- schedules
|
|
script:
|
|
- cargo install --force cargo-audit
|
|
- cargo audit --deny-warnings
|