From f66fcbde9163c5c6f0fcb8851bde9484521f2fba Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Mon, 27 Apr 2020 13:12:17 +0200 Subject: [PATCH] ci: use images from gstreamer-rs Also: - use the same patterns as gstreamer-rs and gst-plugins-rs ci. - remove unused cross build template - update from Rust 1.36 to 1.40 --- .gitlab-ci.yml | 110 ++++++++++++++++++------------------------------- ci/env.sh | 8 ++++ 2 files changed, 48 insertions(+), 70 deletions(-) create mode 100644 ci/env.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f7bc8abc7..8115135dc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,52 +1,45 @@ +include: + - remote: "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/raw/master/ci/images_template.yml" + stages: - "lint" - "test" -.cargo_cache: &cache +.base: + image: "registry.freedesktop.org/gstreamer/gstreamer-rs/debian/10:$RUST_VERSION-$GST_RS_IMG_TAG" + 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" + G_DEBUG: "fatal_warnings" + before_script: + - source ./ci/env.sh + - mkdir .cargo && echo -e "[net]\ngit-fetch-with-cli = true" > .cargo/config cache: key: "gst" paths: - - ".cargo_cache/" + - "${CARGO_HOME}" -.cargo_test_template: &cargo_test - stage: "test" +.img-stable: + extends: .base 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 + RUST_VERSION: "stable" - <<: *cache - before_script: - - apt-get update -yqq - - apt-get install -yqq --no-install-recommends $DEPENDENCIES +.img-1-40: + extends: .base + variables: + RUST_VERSION: "1.40.0" - # 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 .. +.img-nightly: + extends: .base + variables: + RUST_VERSION: "nightly" +.cargo test: + stage: "test" + script: - rustc --version - cargo --version - script: - cargo build --all --color=always # FIXME: tests are broken # https://github.com/sdroege/gstreamer-sys/issues/16 @@ -78,47 +71,24 @@ stages: 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 + extends: + - '.cargo test' + - .img-stable + +test 1.40: + extends: + - '.cargo test' + - .img-1-40 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 + extends: + - '.cargo test' + - .img-nightly rustfmt: - image: "rust:slim-buster" + extends: .img-stable stage: "lint" script: - - rustup component add rustfmt - cargo fmt --version - cargo fmt -- --color=always --check diff --git a/ci/env.sh b/ci/env.sh new file mode 100644 index 000000000..0692b9d1b --- /dev/null +++ b/ci/env.sh @@ -0,0 +1,8 @@ +export RUSTUP_HOME='/usr/local/rustup' +export PATH=$PATH:/usr/local/cargo/bin + +export PKG_CONFIG_PATH=/usr/local/lib/x86_64-linux-gnu/pkgconfig +export GST_PLUGIN_SYSTEM_PATH=/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0 +export GST_PLUGIN_SCANNER=/usr/local/libexec/gstreamer-1.0/gst-plugin-scanner +export PATH=$PATH:/usr/local/bin +export LD_LIBRARY_PATH=/usr/local/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH