nautilus/.gitlab-ci.yml
Peter Eisenmann c1169c8d9c ci: don't run for translation updates
Running a pipeline for each translation update is wasting resources.
2024-04-01 23:06:04 +00:00

127 lines
3.9 KiB
YAML

include: 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml'
variables:
GIT_SUBMODULE_STRATEGY: normal
stages:
- image
- review
- test
- analyze
- deploy
.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"
workflow:
rules:
# run merge request pipelines, for main or release branches and for manually
# triggered pipelines (source "web"), but not for translation updates
- if: ($CI_PIPELINE_SOURCE == "merge_request_event" ||
$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH ||
$CI_COMMIT_BRANCH =~ /^gnome-.*$/ ||
$CI_PIPELINE_SOURCE == "web") &&
$CI_COMMIT_TITLE !~ /^Update.*translation$/
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:
image: registry.gitlab.gnome.org/gnome/nautilus:latest
stage: review
script:
- data/check-potfiles.sh
style check:
image: registry.gitlab.gnome.org/gnome/nautilus:latest
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:
variables:
STORAGE_DRIVER: vfs
BUILDAH_FORMAT: docker
BUILDAH_ISOLATION: chroot
image: registry.fedoraproject.org/fedora:latest
stage: image
script:
- dnf install -y buildah runc
- buildah bud --tag $CI_REGISTRY_IMAGE -f .gitlab/Dockerfile
- buildah tag $CI_REGISTRY_IMAGE "$CI_REGISTRY_IMAGE:v$CI_JOB_ID"
- buildah login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- buildah push --creds $CI_REGISTRY_USER:$CI_REGISTRY_PASSWORD $CI_REGISTRY_IMAGE
- buildah push --creds $CI_REGISTRY_USER:$CI_REGISTRY_PASSWORD "$CI_REGISTRY_IMAGE:v$CI_JOB_ID"
when: manual
rules:
- if: $CI_PROJECT_NAMESPACE != "GNOME"
when: never
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- if: $CI_PIPELINE_SOURCE == "web"
asan:
variables:
CFLAGS: "-fno-omit-frame-pointer -fsanitize=address"
LSAN_OPTIONS: suppressions=$CI_PROJECT_DIR/data/leak-suppress.txt
image: registry.gitlab.gnome.org/gnome/nautilus:latest
stage: analyze
rules:
- when: manual
allow_failure: true
script:
- meson setup -Dextensions=false -Dintrospection=false -Dtests=all _build
- meson compile -C _build
- meson test -C _build
artifacts:
name: 'Address Sanitizer-built test results'
when: on_failure
paths:
- '_build/meson-logs/testlog.txt'
reports:
junit: '_build/meson-logs/testlog.junit.xml'
expire_in: 7 days
pages:
image: registry.gitlab.gnome.org/gnome/nautilus:latest
stage: deploy
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PROJECT_NAMESPACE == "GNOME"
script:
- meson setup -Ddocs=true -Dextensions=false -Dtests=none _build
- ninja -C _build
- mv _build/docs/reference/nautilus/ public/
artifacts:
paths:
- public/
expire_in: 2 days