variables: GIT_SUBMODULE_STRATEGY: normal stages: - test - cross_distro .test_template: &distro_test script: - meson _build . - cd _build - ninja test flatpak:master: image: flatpak/flatpak-builder:gnome-3-28 stage: test script: - flatpak-builder --stop-at=nautilus app build-aux/flatpak/org.gnome.Nautilus.json # 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-builder --run app build-aux/flatpak/org.gnome.Nautilus.json meson --prefix=/app --libdir=/app/lib -Dprofile=stable-flatpak _build - flatpak-builder --run app build-aux/flatpak/org.gnome.Nautilus.json ninja -C _build install - flatpak-builder --finish-only --repo=repo app build-aux/flatpak/org.gnome.Nautilus.json # Make a Flatpak Nautilus bundle for people to test - flatpak build-bundle repo --runtime-repo=https://sdk.gnome.org/gnome.flatpakrepo nautilus-dev.flatpak org.gnome.NautilusStableFlatpak 3.28 # Run automatic tests inside the Flatpak env - flatpak-builder --run app build-aux/flatpak/org.gnome.Nautilus.json ninja -C _build test artifacts: paths: - nautilus-dev.flatpak - _build/meson-logs/meson-log.txt - _build/meson-logs/testlog.txt expire_in: 2 days cache: paths: - .flatpak-builder/cache # Pick any distro to build the coverage fedora:rawhide: image: fedora:rawhide stage: cross_distro script: - dnf install -y 'dnf-command(builddep)' redhat-rpm-config gcovr # Waiting for gcovr 3.5 to be released. - pip install git+https://github.com/gcovr/gcovr.git - dnf builddep -y nautilus - meson _build . -Db_coverage=true # Coverage data contains paths relative to the build directory, # so changing to it makes writing filter expressions easier. # # _build/src/ contains generated sources, so that is filtered out as well. - 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_distro before_script: # Ubuntu requires running update to fetch metadata and find packges - apt update - apt install -y gcc meson gettext itstool git libgtk-3-dev libgnome-autoar-0-dev libgnome-desktop-3-dev gobject-introspection libxml2-dev libtracker-control-2.0-dev desktop-file-utils libgexiv2-dev libgail-3-dev libtracker-sparql-2.0-dev libgirepository1.0-dev <<: *distro_test only: - schedules - web - tags opensuse:tumbleweed: image: opensuse:tumbleweed stage: cross_distro before_script: - zypper install -y gcc meson gettext-runtime gettext-tools itstool git gtk3-devel gnome-autoar-devel libgnome-desktop-3-devel gobject-introspection-devel libxml2-devel tracker-devel desktop-file-utils libgexiv2-devel <<: *distro_test only: - schedules - web - tags