2020-01-13 10:35:34 +00:00
include :
- 'https://source.puri.sm/Librem5/librem5-ci/raw/master/librem5-pipeline-definitions.yml'
2021-01-26 11:00:50 +00:00
- 'https://source.puri.sm/Librem5/librem5-ci/raw/master/librem5-pipeline-byzantium-jobs.yml'
2020-01-13 10:35:34 +00:00
2020-01-13 10:33:42 +00:00
stages :
- build
- test
2020-01-13 10:35:34 +00:00
- package
- test-package
2020-01-13 10:33:42 +00:00
2018-07-27 08:06:04 +00:00
build:native :
stage : build
artifacts :
paths :
- _build
2020-12-04 17:39:53 +00:00
variables :
2021-04-27 02:46:34 +00:00
COMMON_BUILD_OPTS : -Db_coverage=true --werror
2020-12-04 17:39:53 +00:00
BUILD_OPTS : -Dgtk_doc=true ${COMMON_BUILD_OPTS}
2021-01-22 12:12:01 +00:00
WANT_BUILD_DEPS : "true"
2020-07-03 08:20:39 +00:00
except :
variables :
- $PKG_ONLY == "1"
2021-01-22 12:12:01 +00:00
image : pureos/byzantium
tags :
- librem5
before_script :
- export DEBIAN_FRONTEND=noninteractive
- apt-get -y update
2021-04-27 02:46:34 +00:00
- apt-get -y install lcov
2021-01-22 12:12:01 +00:00
- apt-get -y build-dep .
- ulimit -c unlimited
script :
- 'echo "Build opts: ${BUILD_OPTS}"'
- meson ${BUILD_OPTS} . _build
- ninja -C _build
2018-07-27 08:06:04 +00:00
test:native :
2021-01-22 12:12:01 +00:00
extends : build:native
2018-07-27 08:06:04 +00:00
stage : test
dependencies :
- build:native
script :
- export LC_ALL=C.UTF-8
2021-04-05 01:35:48 +00:00
- xvfb-run -s -noreset ninja -C _build test
2021-04-27 02:46:34 +00:00
- cp _build/src/libcalls-vala.a.p/*.c _build
- ninja -C _build coverage
coverage : '/^\s+lines\.+:\s+([\d.]+\%)\s+/'
2018-07-27 08:06:04 +00:00
2020-12-04 17:39:53 +00:00
build-gtkdoc :
2021-01-22 12:12:01 +00:00
extends : build:native
2020-12-04 17:39:53 +00:00
stage : test
dependencies :
- build:native
script :
- ninja -C _build calls-doc
- mv _build/doc/html/ _reference/
artifacts :
paths :
- _reference
2020-11-09 09:37:12 +00:00
check-po :
2021-01-22 12:12:01 +00:00
extends : build:native
2020-11-09 09:37:12 +00:00
stage : test
dependencies :
- build:native
before_script :
- apt-get -y update
- apt-get -y install intltool
script :
# barf on untranslated C files. Seems intltool
# can't be told to exit with non-zero exit status
# in this case
- cd po/
- intltool-update -m 2>&1 | grep -qs '/.*\.c' && { intltool-update -m; exit 1; } || exit 0
2021-06-22 04:26:57 +00:00
# For some reason including https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml fails with a network error (status code 500), therefore it's copied here
.flatpak :
image : 'registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master'
stage : 'package'
interruptible : true
tags :
- flatpak
script :
- rewrite-flatpak-manifest ${MANIFEST_PATH} ${FLATPAK_MODULE} ${CONFIG_OPTS}
- flatpak-builder --user --disable-rofiles-fuse flatpak_app --repo=repo ${BRANCH:+--default-branch=$BRANCH} ${MANIFEST_PATH}
# Generate a Flatpak bundle
- flatpak build-bundle repo ${BUNDLE} --runtime-repo=${RUNTIME_REPO} ${APP_ID} ${BRANCH}
- tar cf repo.tar repo/
artifacts :
name : 'Flatpak artifacts'
expose_as : 'Get Flatpak bundle here'
when : 'always'
paths :
- "${BUNDLE}"
- 'repo.tar'
- '.flatpak-builder/build/${FLATPAK_MODULE}/_flatpak_build/meson-logs/meson-log.txt'
- '.flatpak-builder/build/${FLATPAK_MODULE}/_flatpak_build/meson-logs/testlog.txt'
expire_in : 14 days
cache :
key : "$CI_JOB_NAME"
paths :
- '.flatpak-builder/downloads'
- '.flatpak-builder/git'
flatpak:master :
extends : .flatpak
stage : package
variables :
MANIFEST_PATH : "sm.puri.Calls.json"
RUNTIME_REPO : "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
FLATPAK_MODULE : "calls"
MESON_ARGS : ""
APP_ID : "sm.puri.Calls"
BUNDLE : "calls.flatpak"