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