stages: - "lint" - "test" .cargo_cache: &cache cache: key: "gst" paths: - ".cargo_cache/" .cargo_test_template: &cargo_test stage: "test" variables: G_DEBUG: "fatal_warnings" DEPENDENCIES: | curl libssl-dev liborc-0.4-dev libglib2.0-dev libxml2-dev libegl1-mesa libgles2-mesa libgl1-mesa-dri libgl1-mesa-glx libwayland-egl1-mesa <<: *cache before_script: - apt-get update -yqq - apt-get install -yqq --no-install-recommends $DEPENDENCIES # Only stuff inside the repo directory can be cached # Override the CARGO_HOME variable to force its location - export CARGO_HOME="${PWD}/.cargo_cache" - mkdir -p precompiled-gst && cd precompiled-gst - curl -L https://people.freedesktop.org/~slomo/gstreamer-1.14.3.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 - rustc --version - cargo --version script: - cargo build --all --color=always - cargo test --all --color=always test 1.28: # 1.28 img # https://hub.docker.com/_/rust/ image: "rust:1.28-slim" <<: *cargo_test test stable: # Stable img # https://hub.docker.com/_/rust/ image: "rust:slim" <<: *cargo_test test nightly: # Nightly # https://hub.docker.com/r/rustlang/rust/ image: "rustlang/rust:nightly-slim" allow_failure: true <<: *cargo_test rustfmt: image: "rustlang/rust:nightly-slim" stage: "lint" script: - rustup component add rustfmt-preview - cargo fmt --version - cargo fmt -- --color=always --check