stages: - "lint" - "test" .cargo_cache: &cache cache: key: "gst" paths: - ".cargo_cache/" .cargo_test_template: &cargo_test stage: "test" variables: DEPENDENCIES: | curl liborc-dev libglib2.0-dev libxml2-dev libgtk-3-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 script: - rustc --version - cargo build --color=always --all - G_DEBUG=fatal_warnings cargo test --color=always --all - cargo build --color=always --all --all-features - G_DEBUG=fatal_warnings cargo test --color=always --all --all-features 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