mirror of
https://gitlab.freedesktop.org/dabrain34/GstPipelineStudio.git
synced 2024-11-22 00:50:59 +00:00
25859ec1cd
git is necessary for cargo update
137 lines
3.5 KiB
YAML
137 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
|