nautilus/.gitlab-ci.yml
Ondrej Holy c387235f61 ci: Allow to run pipeline manually from web
The manually started pipelines over the Run pipeline button are currently
blocked. Let's enable them again so one can e.g test Dockerfile changes
without merging them first.
2024-01-31 08:19:36 +01:00

126 lines
3.8 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 and for main or release branches
- if: $CI_PIPELINE_SOURCE == "merge_request_event" ||
$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH ||
$CI_COMMIT_BRANCH =~ /^gnome-.*$/ ||
$CI_PIPELINE_SOURCE == "web"
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: test
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