.gitlab-ci.yml 2.55 KB
Newer Older
1 2 3
include:
  - remote: "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/raw/master/ci/images_template.yml"

Jordan Petridіs's avatar
Jordan Petridіs committed
4
stages:
5
  - "lint"
Jordan Petridіs's avatar
Jordan Petridіs committed
6
  - "test"
7
  - "extras"
Jordan Petridіs's avatar
Jordan Petridіs committed
8

9 10 11 12 13 14 15 16 17 18
.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
Jordan Petridіs's avatar
Jordan Petridіs committed
19 20 21
  cache:
    key: "gst"
    paths:
22
      - "${CARGO_HOME}"
Jordan Petridіs's avatar
Jordan Petridіs committed
23

24 25
.img-stable:
  extends: .base
Jordan Petridіs's avatar
Jordan Petridіs committed
26
  variables:
27
    RUST_VERSION: "stable"
Jordan Petridіs's avatar
Jordan Petridіs committed
28

29 30 31 32
.img-1-40:
  extends: .base
  variables:
    RUST_VERSION: "1.40.0"
Jordan Petridіs's avatar
Jordan Petridіs committed
33

34 35 36 37
.img-nightly:
  extends: .base
  variables:
    RUST_VERSION: "nightly"
38

39 40 41
.cargo test:
  stage: "test"
  script:
Jordan Petridіs's avatar
Jordan Petridіs committed
42 43 44 45 46 47 48 49 50 51 52
    - rustc --version
    - cargo --version
    - 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

53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
    # 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

Jordan Petridіs's avatar
Jordan Petridіs committed
75
test stable:
76 77 78
  extends:
    - '.cargo test'
    - .img-stable
Jordan Petridіs's avatar
Jordan Petridіs committed
79

80 81 82 83
test 1.40:
  extends:
    - '.cargo test'
    - .img-1-40
84

85 86 87 88
test nightly:
  extends:
    - '.cargo test'
    - .img-nightly
89

90
rustfmt:
91
  extends: .img-stable
92 93 94 95
  stage: "lint"
  script:
    - cargo fmt --version
    - cargo fmt -- --color=always --check
96 97 98 99 100 101 102 103 104

outdated:
  extends: .img-stable
  allow_failure: true
  stage: 'extras'
  only:
    - schedules
  script:
    - cargo outdated --root-deps-only --exit-code 1 -v