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 liborc-0.4-dev libglib2.0-dev libxml2-dev libegl1-mesa libgles2-mesa libgl1-mesa-dri libgl1-mesa-glx libwayland-egl1-mesa xz-utils <<: *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.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 PATH=$PATH:$PWD/gstreamer/bin # go back to the root build directory - cd .. - rustc --version - cargo --version script: - cargo build --all --color=always # FIXME: tests are broken # https://github.com/sdroege/gstreamer-sys/issues/16 # - cargo test --all --color=always - cargo build --all --all-features --color=always # FIXME: tests are broken # https://github.com/sdroege/gstreamer-sys/issues/16 # - cargo test --all --all-features --color=always # Run tests for crates we can currently run. The others # need a new release of the C library first - | for crate in gstreamer-app-sys \ gstreamer-audio-sys \ gstreamer-base-sys \ gstreamer-check-sys \ gstreamer-gl-sys \ gstreamer-mpegts-sys \ gstreamer-net-sys \ gstreamer-pbutils-sys \ gstreamer-player-sys \ gstreamer-rtsp-sys \ gstreamer-sdp-sys \ gstreamer-sys \ gstreamer-tag-sys \ gstreamer-video-sys \ gstreamer-webrtc-sys; \ do \ cargo test -p $crate; \ done test 1.36: # 1.36 img # https://hub.docker.com/_/rust/ image: "rust:1.36-slim-buster" <<: *cargo_test test stable: # Stable img # https://hub.docker.com/_/rust/ image: "rust:slim-buster" <<: *cargo_test test nightly: # Nightly # https://hub.docker.com/r/rustlang/rust/ image: "rustlang/rust:nightly-buster-slim" allow_failure: true <<: *cargo_test .cargo_cross_check_template: &cargo_cross_check # Stable img # https://hub.docker.com/_/rust/ image: "rust:slim-buster" stage: "test" variables: PKG_CONFIG: "true" PKG_CONFIG_ALLOW_CROSS: "1" before_script: - rustup target add $CROSS_TARGET_TRIPLET - rustc --version - cargo --version script: - cargo check --target $CROSS_TARGET_TRIPLET --all --color=always - cargo check --target $CROSS_TARGET_TRIPLET --all --all-features --color=always rustfmt: image: "rust:slim-buster" stage: "lint" script: - rustup component add rustfmt - cargo fmt --version - cargo fmt -- --color=always --check