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 - extras variables: FDO_UPSTREAM_REPO: "dabrain34/GstPipelineStudio" GNOME_RUNTIME_IMAGE: "registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:3.38" # Version and tag for our current container .fedora: variables: FDO_DISTRIBUTION_VERSION: "35" # Update this to trigger a container rebuild FDO_DISTRIBUTION_TAG: "2022-01-27.2" 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: >- rust cargo rustfmt clippy 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 FDO_DISTRIBUTION_EXEC: >- pip3 install meson rustfmt: extends: - .fedora - .fdo.distribution-image@fedora stage: lint script: - meson build - cargo fmt --version - cargo fmt -- --color=always --check 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: extras variables: RUSTDOCFLAGS: "-Dwarnings" script: - meson build - rustdoc --version - cargo doc --no-deps clippy: extends: - .fedora - .fdo.distribution-image@fedora stage: extras script: - meson build - cargo clippy --version - cargo clippy --color=always --all-targets -- -D warnings flatpak: image: "registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:41" stage: test 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