geary/.gitlab-ci.yml
Niels De Graef 619bf5b4e0 Migrate to gcr-4 and gck-2
The older versions aren't maintained anymore. Luckily, this is quite a
minimal change, since we only use a very small subset of those APIs.
2025-12-15 00:40:52 +00:00

149 lines
3.5 KiB
YAML

#
# Geary CI config.
#
include:
- project: Infrastructure/freedesktop-ci-templates
file: templates/fedora.yml
ref: aec7a6ce7bb38902c70641526f6611e27141784a
- project: 'GNOME/citemplates'
file: 'flatpak/flatpak_ci_initiative.yml'
- component: gitlab.gnome.org/GNOME/citemplates/release-service@master
inputs:
dist-job-name: "flatpak"
variables:
FDO_UPSTREAM_REPO: gnome/geary
# ImapDB and other tests that touch the disk are super slow on CI
# runners like gcc150.osuosl.org that use platter drives still.
# See Infrastructure/Infrastructure#97.
TEST_ARGS: -t 10
# Locale used for unit tests
TEST_LOCALE: C.UTF-8
stages:
- prepare
- build
- deploy
##
# Stage: Prepare
#
# This mostly consists of preparing Docker iamges for re-use the CI
##
# See also https://gitlab.gnome.org/Infrastructure/freedesktop-ci-templates
build.container.fedora@x86_64:
extends:
- '.fdo.container-build@fedora'
- '.fedora.container.common'
stage: 'prepare'
variables:
# no need to pull the whole tree for rebuilding the image
GIT_STRATEGY: none
# Expiry sets fdo.expires on the image
FDO_EXPIRES_AFTER: 8w
# Geary build dependencies (Fedora packages)
FDO_DISTRIBUTION_PACKAGES: >-
appstream
dbus-daemon
dconf
desktop-file-utils
enchant2-devel
folks-devel
gcr-devel
git
glib-networking
glib2-devel
glibc-langpack-en
gmime30-devel
gnome-online-accounts-devel
gnutls-utils
gsettings-desktop-schemas
gsound-devel
gspell-devel
gtk3-devel
iso-codes-devel
itstool
json-glib-devel
libgee-devel
libhandy1-devel
libicu-devel
libpeas-devel
libsecret-devel
libstemmer-devel
libunwind-devel
libxml2-devel
libytnef-devel
meson
ninja
pinentry-gnome3
sqlite-devel
vala
webkit2gtk4.1-devel
Xvfb
.fedora.container.common:
variables:
# When branching a stable release, change 'main' to the
# release branch name to ensure that a new image will
# be created, tailored for the stable branch.
BRANCH_NAME: 'main'
CONTAINER_TAG: '2025-12-12.0'
FEDORA_VERSION: latest
# Derive FDO variables from this automatically.
# DO NOT edit, instead change the variables above
FDO_REPO_SUFFIX: '${BRANCH_NAME}'
FDO_DISTRIBUTION_TAG: '${CONTAINER_TAG}-fedora-${FEDORA_VERSION}'
FDO_DISTRIBUTION_VERSION: '${FEDORA_VERSION}'
##
# Stage: Build
#
# This stage actually builds & tests Geary. It does so both in Fedora, and in Flatpak
##
fedora:
extends:
- '.fdo.suffixed-image@fedora'
- '.fedora.container.common'
stage: build
variables:
BUILD_DIR: _build
script:
- meson setup --buildtype=debug "$BUILD_DIR"
- meson compile -C "$BUILD_DIR"
- xvfb-run -a dbus-run-session -- meson test -v --no-stdsplit -C "$BUILD_DIR" "$TEST_ARGS"
- meson install -C "$BUILD_DIR"
artifacts:
when: 'always'
paths:
- '$BUILD_DIR/meson-logs'
expire_in: 2 days
flatpak:
stage: build
variables:
APP_ID: org.gnome.Geary.Devel
FLATPAK_MODULE: geary
MANIFEST_PATH: org.gnome.Geary.json
RUNTIME_REPO: 'https://nightly.gnome.org/gnome-nightly.flatpakrepo'
TEST_RUN_ARGS: $TEST_ARGS
BUNDLE: geary-dev.flatpak
extends: .flatpak
##
# Stage: Deploy
#
# This stage is meant for deplying any nightly (Flatpak) builds, docs, etc
##
nightly:
extends: '.publish_nightly'
needs: ['flatpak']