geary/.gitlab-ci.yml
Niels De Graef 0dad64a81d Port plugins from libpeas-1 to libpeas-2
The newer version of libpeas was released a couple of years ago already,
and at this point should probably be consdered the only maintained
version.

The changes are pretty minimal, and most should be pretty obvious from
the libpeas migration guide. The only annoying thing is that we can't
use `Peas.Engine.create_extension()` directly, since it's not exposed to
language bindings (even to Vala, which supports varargs, but alas).

Link: https://gnome.pages.gitlab.gnome.org/libpeas/libpeas-2/migrating-1to2.html

Fixes: https://gitlab.gnome.org/GNOME/geary/-/issues/1690
2025-12-12 01:02:12 +01: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
gcr3-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-11.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']