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.36: # 1.36 img # https://hub.docker.com/_/rust/ image: "rust:1.36-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