gst-plugins-rs/.gitlab-ci.yml

193 lines
4.1 KiB
YAML
Raw Normal View History

.templates_sha: &templates_sha 322bf2b8f29b6491caeb13861201e96969ddc169
include:
- project: 'freedesktop/ci-templates'
ref: *templates_sha
file: '/templates/debian.yml'
- remote: "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/raw/master/ci/images_template.yml"
variables:
FDO_UPSTREAM_REPO: gstreamer/gst-plugins-rs
stages:
- "prep"
- "lint"
- "test"
- "extras"
.debian:10:
variables:
FDO_DISTRIBUTION_VERSION: 10
FDO_DISTRIBUTION_TAG: '$RUST_VERSION-${GST_RS_IMG_TAG}_2020-04-28.1'
FDO_BASE_IMAGE: "registry.freedesktop.org/gstreamer/gstreamer-rs/debian/10:$RUST_VERSION-$GST_RS_IMG_TAG"
before_script:
- source ./ci/env.sh
- mkdir .cargo && echo -e "[net]\ngit-fetch-with-cli = true" > .cargo/config
# If cargo exists assume we probably will want to update
# the lockfile
- |
if command -v cargo; then
cargo generate-lockfile
cargo update
fi
.debian:10-stable:
extends: .debian:10
variables:
2020-11-01 09:51:01 +00:00
RUST_VERSION: "1.46.0"
.debian:10-1-41:
extends: .debian:10
variables:
RUST_VERSION: "1.41.0"
.debian:10-nightly:
extends: .debian:10
variables:
RUST_VERSION: "nightly"
.build-debian-container:
extends:
- .fdo.container-build@debian
stage: prep
variables:
FDO_DISTRIBUTION_PACKAGES: "libcsound64-dev llvm clang nasm libsodium-dev"
FDO_DISTRIBUTION_EXEC: 'bash ci/install-dav1d.sh'
rules:
- if: '$UPDATE_IMG == null'
build-stable:
extends:
- .build-debian-container
- .debian:10-stable
build-1-41:
extends:
- .build-debian-container
- .debian:10-1-41
build-nightly:
extends:
- .build-debian-container
- .debian:10-nightly
# Those jobs are triggered by gstreamer-rs when updating its images
update-stable:
extends: build-stable
rules:
- if: '$UPDATE_IMG == "stable"'
variables:
FDO_FORCE_REBUILD: 1
update-1-41:
extends: build-1-41
rules:
- if: '$UPDATE_IMG == "1-41"'
variables:
FDO_FORCE_REBUILD: 1
update-nightly:
extends: build-nightly
rules:
- if: '$UPDATE_IMG == "nightly"'
variables:
FDO_FORCE_REBUILD: 1
.dist-debian-container:
extends:
- .fdo.distribution-image@debian
variables:
SODIUM_USE_PKG_CONFIG: "true"
after_script:
- rm -rf target
.img-stable:
extends:
- .dist-debian-container
- .debian:10-stable
.img-1-41:
extends:
- .dist-debian-container
- .debian:10-1-41
.img-nightly:
extends:
- .dist-debian-container
- .debian:10-nightly
.cargo test:
stage: "test"
script:
- rustc --version
- cargo build --locked --color=always --all
- G_DEBUG=fatal_warnings cargo test --locked --color=always --all
- cargo build --locked --color=always --all --examples --all-features
- G_DEBUG=fatal_warnings cargo test --locked --color=always --all --examples --all-features
test 1.41:
extends:
- '.cargo test'
- .img-1-41
rules:
- if: '$UPDATE_IMG == null || $UPDATE_IMG == "1-41"'
test stable:
extends:
- '.cargo test'
- .img-stable
rules:
- if: '$UPDATE_IMG == null || $UPDATE_IMG == "stable"'
test nightly:
allow_failure: true
extends:
- '.cargo test'
- .img-nightly
rules:
- if: '$UPDATE_IMG == null || $UPDATE_IMG == "nightly"'
rustfmt:
extends: .img-stable
stage: "lint"
rules:
- when: 'always'
script:
- cargo fmt --version
- cargo fmt -- --color=always --check
check commits:
extends: .img-stable
stage: "lint"
rules:
- when: 'always'
script:
- ci-fairy check-commits --textwidth 0 --no-signed-off-by
clippy:
extends: .img-stable
stage: 'extras'
rules:
- when: 'always'
script:
- cargo clippy --locked --color=always --all --all-features --all-targets -- -A clippy::redundant_pattern_matching -A clippy::single_match -A clippy::cast_lossless -D warnings
deny:
extends: .img-stable
stage: 'extras'
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
script:
- cargo deny check
outdated:
extends: .img-stable
allow_failure: true
stage: 'extras'
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
script:
- cargo outdated --root-deps-only --exit-code 1 -v