From a4113052f298e0d7b1d1111bb057fab2de12ed37 Mon Sep 17 00:00:00 2001 From: Jordan Petridis Date: Mon, 15 Oct 2018 17:14:44 +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 | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..e1e363aa0 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,76 @@ +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 PATH=$PATH:$PWD/gstreamer/bin + + - 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 + + +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