From 252b8498ff9e0b3c333936c3d446d7dce8df967f Mon Sep 17 00:00:00 2001 From: Jordan Petridis Date: Mon, 15 Oct 2018 15:08:29 +0300 Subject: [PATCH] CI: Add gitlab-ci config. Similar to how ti was done for gstreamer-rs. See [1] for more. [1] https://github.com/sdroege/gstreamer-rs/pull/132 --- .gitlab-ci.yml | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..4786d6e2 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,72 @@ +stages: + - "test" + - "lint" + +.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 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 -- GitLab