157 lines
4.4 KiB
YAML
157 lines
4.4 KiB
YAML
#
|
|
# Geary CI config.
|
|
#
|
|
|
|
stages:
|
|
- build
|
|
|
|
variables:
|
|
BUILD_DIR: build
|
|
CONFIG_CMD: meson --buildtype=debug build
|
|
BUILD_CMD: ninja -v -C $BUILD_DIR
|
|
TEST_CMD: xvfb-run meson test -v --no-stdsplit -C $BUILD_DIR
|
|
INSTALL_CMD: ninja -v -C $BUILD_DIR install
|
|
|
|
# Fedora packages
|
|
FEDORA_DEPS: vala gobject-introspection-devel
|
|
meson desktop-file-utils libcanberra-devel libgee-devel
|
|
glib2-devel gmime-devel gtk3-devel libnotify-devel sqlite-devel
|
|
webkitgtk4-devel libsecret-devel libxml2-devel vala-tools
|
|
gcr-devel enchant-devel libunwind-devel iso-codes-devel
|
|
gnome-online-accounts-devel itstool json-glib-devel
|
|
FEDORA_TEST_DEPS: Xvfb tar xz
|
|
|
|
# Ubuntu & Debian packages
|
|
UBUNTU_DEPS: valac libgirepository1.0-dev
|
|
meson desktop-file-utils libcanberra-dev
|
|
libgee-0.8-dev libglib2.0-dev libgmime-2.6-dev libgtk-3-dev
|
|
libsecret-1-dev libxml2-dev libnotify-dev libsqlite3-dev
|
|
libwebkit2gtk-4.0-dev libgcr-3-dev libenchant-dev
|
|
libunwind-dev iso-codes libgoa-1.0-dev itstool gettext
|
|
libmessaging-menu-dev libunity-dev libjson-glib-dev
|
|
UBUNTU_TEST_DEPS: xauth xvfb
|
|
|
|
# Flatpak vars
|
|
APP_ID: org.gnome.Geary
|
|
BUNDLE: geary-dev.flatpak
|
|
FLATPAK_MODULE: geary
|
|
GIT_SUBMODULE_STRATEGY: normal
|
|
MANIFEST_PATH: org.gnome.Geary.json
|
|
RUNTIME_REPO: "https://sdk.gnome.org/gnome-nightly.flatpakrepo"
|
|
|
|
stages:
|
|
- build
|
|
- deploy
|
|
|
|
fedora:
|
|
stage: build
|
|
image: fedora:latest
|
|
before_script:
|
|
- dnf update -y --nogpgcheck
|
|
- dnf install -y --nogpgcheck $FEDORA_DEPS $FEDORA_TEST_DEPS
|
|
script:
|
|
- $CONFIG_CMD
|
|
- $BUILD_CMD
|
|
- $TEST_CMD
|
|
- $INSTALL_CMD
|
|
|
|
ubuntu:
|
|
stage: build
|
|
image: ubuntu:rolling
|
|
before_script:
|
|
- apt-get update
|
|
- apt-get install -q -y --no-install-recommends $UBUNTU_DEPS $UBUNTU_TEST_DEPS
|
|
script:
|
|
- $CONFIG_CMD
|
|
- $BUILD_CMD
|
|
- $TEST_CMD
|
|
- $INSTALL_CMD
|
|
|
|
deb-package:
|
|
stage: build
|
|
image: ubuntu:rolling
|
|
before_script:
|
|
- apt-get update
|
|
- apt-get install -q -y --no-install-recommends packaging-dev $UBUNTU_DEPS
|
|
script:
|
|
- dpkg-buildpackage -b -us -uc
|
|
|
|
flatpak:
|
|
image: 'registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master'
|
|
stage: 'build'
|
|
script:
|
|
- flatpak-builder --stop-at=${FLATPAK_MODULE} app ${MANIFEST_PATH}
|
|
# Make sure to keep this in sync with the Flatpak manifest, all arguments
|
|
# are passed except the config-args because we build it ourselves
|
|
- flatpak build app meson --prefix=/app ${MESON_ARGS} _build
|
|
- flatpak build app ninja -C _build install
|
|
- flatpak-builder --finish-only --repo=repo app ${MANIFEST_PATH}
|
|
# Run automatic tests inside the Flatpak env
|
|
- >
|
|
xvfb-run -a -s "-screen 0 1024x768x24"
|
|
flatpak build
|
|
--env=LANG=C.UTF-8
|
|
--env=NO_AT_BRIDGE=1
|
|
app
|
|
dbus-run-session
|
|
meson test -C _build --no-stdsplit --print-errorlogs
|
|
# Generate a Flatpak bundle
|
|
- flatpak build-bundle repo ${BUNDLE} --runtime-repo=${RUNTIME_REPO} ${APP_ID}
|
|
artifacts:
|
|
when: 'always'
|
|
paths:
|
|
- "${BUNDLE}"
|
|
- '_build/meson-logs/meson-log.txt'
|
|
- '_build/meson-logs/testlog.txt'
|
|
expire_in: 2 days
|
|
cache:
|
|
key: "$CI_JOB_NAME"
|
|
paths:
|
|
- '.flatpak-builder/downloads'
|
|
- '.flatpak-builder/git'
|
|
except:
|
|
variables:
|
|
# Don't run for translation commits
|
|
- $CI_COMMIT_TITLE =~ /^Update.*translation$/
|
|
|
|
review:
|
|
stage: 'deploy'
|
|
script:
|
|
- echo "Generating Flatpak deployment"
|
|
artifacts:
|
|
paths:
|
|
- "${BUNDLE}"
|
|
expire_in: 30 days
|
|
environment:
|
|
name: review/$CI_COMMIT_REF_NAME
|
|
url: https://gitlab.gnome.org/$CI_PROJECT_PATH/-/jobs/$CI_JOB_ID/artifacts/raw/${BUNDLE}
|
|
on_stop: stop_review
|
|
except:
|
|
refs:
|
|
- 'tags'
|
|
# No need to run on the upstream master branch either
|
|
- 'master'
|
|
# don't run on stable branches
|
|
- /^gnome-\d-\d\d$/
|
|
variables:
|
|
# Don't run for translation commits
|
|
- $CI_COMMIT_TITLE =~ /^Update.*translation$/
|
|
|
|
stop_review:
|
|
stage: 'deploy'
|
|
script:
|
|
- echo "Stopping Flatpak deployment"
|
|
when: 'manual'
|
|
environment:
|
|
name: review/$CI_COMMIT_REF_NAME
|
|
action: 'stop'
|
|
except:
|
|
refs:
|
|
- 'tags'
|
|
# No need to run on the upstream master branch either
|
|
- 'master'
|
|
# don't run on stable branches
|
|
- /^gnome-\d-\d\d$/
|
|
variables:
|
|
# Don't run for translation commits
|
|
- $CI_COMMIT_TITLE =~ /^Update.*translation$/
|