stages: - "lint" - "test" - "extras" .tarball_setup: &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 liborc-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.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 - cd "${CI_PROJECT_DIR}" cache: key: "gst" paths: - "${CARGO_HOME}" .cargo_test_template: &cargo_test stage: "test" <<: *setup 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.31: # 1.31 img # https://hub.docker.com/_/rust/ image: "rust:1.31-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: "rust:slim" stage: "lint" script: - rustup component add rustfmt - cargo fmt --version - cargo fmt -- --color=always --check clippy: image: "rust:slim" stage: 'extras' <<: *setup script: - rustup component add clippy-preview - cargo clippy --version - cargo clippy --color=always --all --all-features