include: - project: "GNOME/citemplates" file: "flatpak/flatpak_ci_initiative.yml" - project: "Infrastructure/freedesktop-ci-templates" file: "templates/fedora.yml" - component: gitlab.gnome.org/GNOME/citemplates/release-service@master inputs: job-stage: release dist-job-name: "flatpak@x86_64" tarball-artifact-path: "${TARBALL_ARTIFACT_PATH}" variables: DEPENDENCIES: git gcc meson libasan uncrustify glibc-devel glib2-devel gtk4-devel libadwaita-devel libselinux-devel gettext libgexiv2-devel localsearch dbus-daemon gnome-desktop4-devel gnome-autoar-devel libportal-devel libportal-gtk4-devel libcloudproviders-devel GIT_SUBMODULE_STRATEGY: normal MESON_BUILD_DIR: _build CI_REGISTRY_IMAGE: registry.gitlab.gnome.org/gnome/nautilus TARBALL_ARTIFACT_PATH: ".flatpak-builder/build/nautilus/_flatpak_build/meson-dist/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.tar.xz" stages: - image - review - test - analyze - deploy - release .vars-devel: variables: MANIFEST_PATH: "build-aux/flatpak/org.gnome.Nautilus.json" FLATPAK_MODULE: "nautilus" RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo" APP_ID: "org.gnome.NautilusDevel" BUNDLE: "nautilus-dev.flatpak" rules: # Disable tests for protected tags - if: $CI_COMMIT_TAG && $CI_COMMIT_REF_PROTECTED variables: CONFIG_OPTS: '--libdir=/app/lib -Dprofile=Devel -Dtests=none' - when: always workflow: rules: # Run merge request pipelines, for main or release branches, for manually # triggered pipelines (source "web"), and tags, but not for translation updates - if: ($CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_TAG && $CI_COMMIT_REF_PROTECTED || $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH =~ /^gnome-.*$/ || $CI_PIPELINE_SOURCE == "web") && $CI_COMMIT_TITLE !~ /^Update.*translation$/ .nautilus.fedora: variables: FDO_DISTRIBUTION_VERSION: rawhide FDO_DISTRIBUTION_TAG: '2025-02-28' FDO_DISTRIBUTION_COMPRESSION_FORMAT: zstd:chunked flatpak@x86_64: extends: ['.flatpak@x86_64', '.vars-devel'] flatpak@aarch64: when: manual rules: - if: $CI_PROJECT_NAMESPACE == "GNOME" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH when: always - allow_failure: true extends: ['.flatpak@aarch64', '.vars-devel'] nightly@x86_64: extends: '.publish_nightly' needs: ['flatpak@x86_64'] nightly@aarch64: extends: '.publish_nightly' needs: ['flatpak@aarch64'] potfile: extends: - .fdo.distribution-image@fedora - .nautilus.fedora stage: review script: - data/check-potfiles.sh style check: extends: - .fdo.distribution-image@fedora - .nautilus.fedora stage: review artifacts: name: 'Style check artifacts' expose_as: 'Get style check diff here' when: on_failure paths: - 'uncrustify.diff' expire_in: 14 days script: - LANG=C.utf8 data/run-uncrustify.sh - git diff --exit-code | tee uncrustify.diff rules: - if: $CI_COMMIT_BRANCH !~ /^gnome-.*$/ update image: extends: - .fdo.container-build@fedora - .nautilus.fedora stage: image variables: GIT_STRATEGY: none FDO_DISTRIBUTION_PACKAGES: $DEPENDENCIES FDO_DISTRIBUTION_EXEC: ".gitlab/image-script.sh" CFLAGS: "-fno-omit-frame-pointer" when: manual rules: - if: $CI_PROJECT_NAMESPACE != "GNOME" when: never - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_PIPELINE_SOURCE == "web" asan: extends: - .fdo.distribution-image@fedora - .nautilus.fedora variables: CFLAGS: "-fno-omit-frame-pointer" LSAN_OPTIONS: suppressions=$CI_PROJECT_DIR/data/leak-suppress.txt stage: analyze rules: - when: manual allow_failure: true script: - meson setup -Db_sanitize=address -Dextensions=false -Dintrospection=false -Dtests=all $MESON_BUILD_DIR - meson compile -C $MESON_BUILD_DIR - meson test --suite display --suite displayless -C $MESON_BUILD_DIR artifacts: name: 'Address Sanitizer-built test results' when: on_failure paths: - $MESON_BUILD_DIR/meson-logs/testlog.txt reports: junit: $MESON_BUILD_DIR/meson-logs/testlog.junit.xml expire_in: 7 days pages: extends: - .fdo.distribution-image@fedora - .nautilus.fedora stage: deploy rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PROJECT_NAMESPACE == "GNOME" script: - meson setup -Ddocs=true -Dextensions=false -Dtests=none $MESON_BUILD_DIR - ninja -C $MESON_BUILD_DIR - mv $MESON_BUILD_DIR/docs/reference/nautilus/ public/ artifacts: paths: - public/ expire_in: 2 days