include: 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml' variables: GIT_SUBMODULE_STRATEGY: normal BUNDLE: "nautilus-dev.flatpak" stages: - triage - test - cross_environment - deploy .test_template: &distro_test script: - meson _build . - cd _build - ninja test .flatpak_gcovr: extends: .flatpak after_script: # Generate coverage report - cd _build - flatpak build ../app gcovr --html-details -o coverage.html --print-summary --root=. --exclude=src/ --exclude=../data/ --exclude=../eel/check-program.c --exclude=../eel/eel-debug.c --exclude=../eel/eel-lib-self-check-functions.c --exclude=../eel/eel-self-checks.c --exclude=../src/animation/ --exclude=../src/gtk/ --exclude=../src/nautilus-lib-self-check-functions.c --exclude=../src/nautilus-self-check-functions.c --exclude=../subprojects/libgd/ --exclude=../test/ coverage: '/^branches:.*\s+(\S+\%).*$/' artifacts: when: 'always' # overwrite the path array of the '.flatpak' job paths: - "${BUNDLE}" - '_build/meson-logs/meson-log.txt' - '_build/meson-logs/testlog.txt' - '_build/coverage.html' expire_in: 2 days flatpak devel: image: registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:3.30 stage: test variables: MANIFEST_PATH: "build-aux/flatpak/org.gnome.Nautilus.yml" MESON_ARGS: "-Dprofile=Devel -Dtests=all -Db_coverage=true" FLATPAK_MODULE: "nautilus" RUNTIME_REPO: "https://sdk.gnome.org/gnome.flatpakrepo" APP_ID: "org.gnome.NautilusDevel" extends: '.flatpak_gcovr' review: stage: deploy dependencies: - 'flatpak devel' extends: '.review' stop_review: stage: deploy extends: '.stop_review' fedora rawhide: image: fedora:rawhide stage: cross_environment before_script: - dnf update -y --nogpgcheck - dnf install -y 'dnf-command(builddep)' redhat-rpm-config libseccomp-devel gcovr --nogpgcheck - dnf builddep -y nautilus --nogpgcheck <<: *distro_test only: - schedules - web - tags ubuntu devel: image: ubuntu:devel stage: cross_environment variables: DEPENDENCIES: | git gcc meson gettext itstool gobject-introspection desktop-file-utils libxml2-dev libgtk-3-dev libgexiv2-dev libseccomp-dev libgnome-autoar-0-dev libgirepository1.0-dev libtracker-sparql-2.0-dev libtracker-control-2.0-dev gsettings-desktop-schemas-dev before_script: # Ubuntu requires running update to fetch metadata and find packges - apt-get update - apt-get install -y $DEPENDENCIES <<: *distro_test only: - schedules - web - tags opensuse tumbleweed: image: opensuse:tumbleweed stage: cross_environment variables: DEPENDENCIES: | git gcc meson itstool gtk3-devel gettext-tools libxml2-devel tracker-devel libgexiv2-devel gettext-runtime gnome-autoar-devel desktop-file-utils gobject-introspection-devel gsettings-desktop-schemas-devel libseccomp-devel before_script: - zypper install -y $DEPENDENCIES <<: *distro_test only: - schedules - web - tags flatpak master: stage: cross_environment variables: MANIFEST_PATH: "build-aux/flatpak/org.gnome.NautilusMaster.yml" MESON_ARGS: "-Dprofile=Master -Dtests=all -Db_coverage=true" FLATPAK_MODULE: "nautilus" RUNTIME_REPO: "https://sdk.gnome.org/gnome-nightly.flatpakrepo" APP_ID: "org.gnome.NautilusMaster" extends: .flatpak only: - schedules - web - tags flatpak gtk4: stage: cross_environment variables: MANIFEST_PATH: "build-aux/flatpak/org.gnome.NautilusGtk4.yml" MESON_ARGS: "-Dprofile=Gtk4 -Dtests=all -Db_coverage=true" FLATPAK_MODULE: "nautilus" RUNTIME_REPO: "https://sdk.gnome.org/gnome-nightly.flatpakrepo" APP_ID: "org.gnome.NautilusGtk4" extends: .flatpak only: - schedules - web - tags pages: stage: deploy dependencies: - 'flatpak devel' script: - mkdir public - mv _build/coverage.html ${CI_PROJECT_DIR}/public/index.html artifacts: paths: - public only: - master triage: image: ruby:2.4 stage: triage script: - gem install gitlab-triage - gitlab-triage --token $TRIAGE_BOT_TOKEN --project-id $CI_PROJECT_PATH --host-url https://gitlab.gnome.org only: - schedules triage:dry-run: image: ruby:2.4 stage: triage script: - gem install gitlab-triage - gitlab-triage --dry-run --token $TRIAGE_BOT_TOKEN --project-id $CI_PROJECT_PATH --host-url https://gitlab.gnome.org only: - schedules when: manual