GstPipelineStudio/.gitlab-ci.yml
Stéphane Cerveau 25859ec1cd gitlab-ci: update image to support git
git is necessary for cargo update
2022-09-05 18:21:33 +02:00

138 lines
3.5 KiB
YAML

include:
- project: "freedesktop/ci-templates" # the project to include from
ref: "34f4ade99434043f88e164933f570301fd18b125" # git ref of that project
file: "/templates/fedora.yml" # the actual file to include
stages:
- prepare
- lint
- test
- release
variables:
FDO_UPSTREAM_REPO: "dabrain34/GstPipelineStudio"
GNOME_RUNTIME_IMAGE: "registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:41"
# Version and tag for our current container
.fedora:
variables:
FDO_DISTRIBUTION_VERSION: "35"
# Update this to trigger a container rebuild
FDO_DISTRIBUTION_TAG: "2022-03-07.4"
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 --color=always
# cargo update --color=always
# fi
build-fedora-container:
extends:
- .fedora # our template job above
- .fdo.container-build@fedora@x86_64 # the CI template
stage: prepare
variables:
# clang-devel: required by rust bindgen
FDO_DISTRIBUTION_PACKAGES: >-
gtk4-devel
clang-devel
gstreamer1-devel
gstreamer1-plugins-base-devel
gstreamer1-plugins-bad-free-devel
ninja-build
pkg-config
python3-devel
python3-pip
python3-setuptools
util-linux
xorg-x11-server-Xvfb
wget
git
FDO_DISTRIBUTION_EXEC: >-
ci/install-rust.sh stable &&
pip3 install meson
rustfmt-clippy:
extends:
- .fedora
- .fdo.distribution-image@fedora
stage: lint
script:
- meson build
- cargo fmt --version
- cargo fmt -- --color=always --check
- cargo clippy --version
- cargo clippy --color=always --all-targets -- -D warnings
test-stable:
extends:
- .fedora
- .fdo.distribution-image@fedora
stage: test
script:
- meson build
- rustc --version
- cargo build --color=always --all-targets
- >
xvfb-run -a -s "-screen 0 1024x768x24"
cargo test --color=always
rustdoc:
extends:
- .fedora
- .fdo.distribution-image@fedora
stage: release
only:
- flatpak
- tags
variables:
RUSTDOCFLAGS: "-Dwarnings"
script:
- meson build
- rustdoc --version
- cargo doc --no-deps
dist-package:
extends:
- .fedora
- .fdo.distribution-image@fedora
stage: release
only:
- flatpak
script:
- meson build
- ninja -C build dist
flatpak:
image: $GNOME_RUNTIME_IMAGE
stage: release
only:
- flatpak
- tags
# Using gstreamer runner avoids an issue with 'bwrap: No permissions to creating new namespace' during flatpak builder
tags:
- gstreamer
variables:
BUNDLE: "gst-pipeline-studio-nightly.flatpak"
MANIFEST_PATH: "build-aux/org.freedesktop.dabrain34.GstPipelineStudio.Devel.json"
FLATPAK_MODULE: "gst-pipeline-studio"
APP_ID: "org.freedesktop.dabrain34.GstPipelineStudio.Devel"
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
script:
- flatpak-builder app ${MANIFEST_PATH}
- flatpak build-export repo app
- flatpak build-bundle repo ${BUNDLE} ${APP_ID}
artifacts:
name: "Flatpak artifacts"
expose_as: "Get Flatpak bundle here"
when: "always"
paths:
- "${BUNDLE}"
- ".flatpak-builder/build/${FLATPAK_MODULE}/_flatpak_build/meson-logs/meson-log.txt"
- ".flatpak-builder/build/${FLATPAK_MODULE}/_flatpak_build/meson-logs/testlog.txt"
expire_in: 14 days