variables: GIT_SUBMODULE_STRATEGY: normal BUNDLE: "nautilus-dev.flatpak" stages: - test - cross_environment - deploy .test_template: &distro_test script: - meson _build . - cd _build - ninja test flatpak: image: registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:3.28 stage: test variables: MANIFEST_PATH: "build-aux/flatpak/org.gnome.Nautilus.yml" MESON_ARGS: "-Dprofile=development -Dtests=all" FLATPAK_MODULE: "nautilus" RUNTIME_REPO: "https://sdk.gnome.org/gnome.flatpakrepo" DBUS_ID: "org.gnome.NautilusDevel" before_script: - tar -xzf cache.tar.gz .flatpak-builder/cache/ || true script: - flatpak-builder --stop-at=${FLATPAK_MODULE} app ${MANIFEST_PATH} # Make sure to keep this in sync with the Flatpak manifest, all arguments # are passed except the config-args because we build it ourselves - flatpak build app meson --prefix=/app --libdir=lib ${MESON_ARGS} _build - flatpak build app ninja -C _build install - flatpak-builder --finish-only --repo=repo app ${MANIFEST_PATH} # Run automatic tests inside the Flatpak env - xvfb-run -a -s "-screen 0 1024x768x24" flatpak build app ninja -C _build test # Generate a Flatpak bundle - flatpak build-bundle repo ${BUNDLE} --runtime-repo=${RUNTIME_REPO} ${DBUS_ID} after_script: - tar -czf cache.tar.gz .flatpak-builder/cache/ artifacts: paths: - ${BUNDLE} - _build/meson-logs/ expire_in: 30 days cache: paths: - cache.tar.gz tags: - ubuntu review: stage: deploy dependencies: - flatpak script: - echo "Generating flatpak deployment" artifacts: paths: - ${BUNDLE} expire_in: 30 days environment: name: review/$CI_COMMIT_REF_NAME url: https://gitlab.gnome.org/$CI_PROJECT_PATH/-/jobs/$CI_JOB_ID/artifacts/raw/${BUNDLE} on_stop: stop_review except: - master@GNOME/nautilus - tags stop_review: stage: deploy script: - echo "Stopping flatpak deployment" when: manual environment: name: review/$CI_COMMIT_REF_NAME action: stop except: - master@GNOME/nautilus - tags fedora:rawhide: image: fedora:rawhide stage: cross_environment before_script: - dnf update -y - dnf install -y 'dnf-command(builddep)' redhat-rpm-config libseccomp-devel gcovr - dnf builddep -y nautilus script: - meson _build . -Db_coverage=true - cd _build - ninja test - gcovr --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: '/^TOTAL.*\s+(\d+\%)$/' only: - schedules - web - tags ubuntu:devel: image: ubuntu:devel stage: cross_environment before_script: # Ubuntu requires running update to fetch metadata and find packges - apt-get update - apt-get install -y gcc meson gettext itstool git libgtk-3-dev libgnome-autoar-0-dev gobject-introspection libxml2-dev libtracker-control-2.0-dev desktop-file-utils libgexiv2-dev libtracker-sparql-2.0-dev libgirepository1.0-dev gsettings-desktop-schemas-dev libseccomp-dev <<: *distro_test only: - schedules - web - tags opensuse:tumbleweed: image: opensuse:tumbleweed stage: cross_environment before_script: - zypper install -y gcc meson gettext-runtime gettext-tools itstool git gtk3-devel gnome-autoar-devel gobject-introspection-devel libxml2-devel tracker-devel desktop-file-utils libgexiv2-devel gsettings-desktop-schemas-devel libseccomp-devel <<: *distro_test only: - schedules - web - tags flatpak:master: image: registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master stage: cross_environment variables: MANIFEST_PATH: "build-aux/flatpak/org.gnome.NautilusMaster.yml" MESON_ARGS: "-Dprofile=Master -Dtests=all" FLATPAK_MODULE: "nautilus" RUNTIME_REPO: "https://sdk.gnome.org/gnome-nightly.flatpakrepo" DBUS_ID: "org.gnome.NautilusMaster" script: - flatpak-builder --stop-at=${FLATPAK_MODULE} app ${MANIFEST_PATH} # Make sure to keep this in sync with the Flatpak manifest, all arguments # are passed except the config-args because we build it ourselves - flatpak build app meson --prefix=/app --libdir=lib ${MESON_ARGS} _build - flatpak build app ninja -C _build install - flatpak-builder --finish-only --repo=repo app ${MANIFEST_PATH} # Run automatic tests inside the Flatpak env - xvfb-run -a -s "-screen 0 1024x768x24" flatpak build app ninja -C _build test # Generate a Flatpak bundle - flatpak build-bundle repo ${BUNDLE} --runtime-repo=${RUNTIME_REPO} ${DBUS_ID} artifacts: paths: - ${BUNDLE} - _build/meson-logs/ expire_in: 30 days cache: paths: - .flatpak-builder/cache only: - schedules - web - tags flatpak:gtk4: image: registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master stage: cross_environment variables: MANIFEST_PATH: "build-aux/flatpak/org.gnome.NautilusGtk4.yml" MESON_ARGS: "-Dprofile=Gtk4 -Dtests=all" FLATPAK_MODULE: "nautilus" RUNTIME_REPO: "https://sdk.gnome.org/gnome-nightly.flatpakrepo" DBUS_ID: "org.gnome.NautilusGtk4" script: - flatpak-builder --stop-at=${FLATPAK_MODULE} app ${MANIFEST_PATH} # Make sure to keep this in sync with the Flatpak manifest, all arguments # are passed except the config-args because we build it ourselves - flatpak build app meson --prefix=/app --libdir=lib ${MESON_ARGS} _build - flatpak build app ninja -C _build install - flatpak-builder --finish-only --repo=repo app ${MANIFEST_PATH} # Run automatic tests inside the Flatpak env - xvfb-run -a -s "-screen 0 1024x768x24" flatpak build app ninja -C _build test # Generate a Flatpak bundle - flatpak build-bundle repo ${BUNDLE} --runtime-repo=${RUNTIME_REPO} ${DBUS_ID} artifacts: paths: - ${BUNDLE} - _build/meson-logs/ expire_in: 30 days cache: paths: - .flatpak-builder/cache only: - schedules - web - tags