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:
|
|
|
|
BUILD_OPTS: -Dgtk_doc=true ${COMMON_BUILD_OPTS}
|
2021-01-22 12:12:01 +00:00
|
|
|
WANT_BUILD_DEPS: "true"
|
|
|
|
COMMON_BUILD_OPTS: --werror
|
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
|
|
|
|
- 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
|
|
|
|
- xvfb-run ninja -C _build test
|
|
|
|
|
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-01-18 14:28:25 +00:00
|
|
|
|
|
|
|
# For some reason including https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml fails, therefore it's copied here
|
|
|
|
.flatpak:
|
|
|
|
image: 'registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master'
|
|
|
|
stage: 'test'
|
|
|
|
interruptible: true
|
|
|
|
tags:
|
|
|
|
- flatpak
|
|
|
|
script:
|
|
|
|
- rewrite-flatpak-manifest ${MANIFEST_PATH} ${FLATPAK_MODULE} ${CONFIG_OPTS}
|
2021-01-26 20:34:11 +00:00
|
|
|
- flatpak-builder --user --disable-rofiles-fuse flatpak_app --repo=repo ${BRANCH:+--default-branch=$BRANCH} ${MANIFEST_PATH}
|
2021-01-18 14:28:25 +00:00
|
|
|
# Generate a Flatpak bundle
|
|
|
|
- flatpak build-bundle repo ${BUNDLE} --runtime-repo=${RUNTIME_REPO} ${APP_ID} ${BRANCH}
|
|
|
|
- tar cf repo.tar repo/
|
|
|
|
|
|
|
|
# Run automatic tests inside the Flatpak env
|
|
|
|
# we need to recreate the build directory because cleanup would have deleted build dependencies
|
|
|
|
- rm -rf flatpak_app
|
|
|
|
- flatpak-builder --user --disable-rofiles-fuse --build-only flatpak_app ${MANIFEST_PATH}
|
|
|
|
- flatpak build-finish --socket=x11 --share=network flatpak_app
|
|
|
|
- >
|
|
|
|
xvfb-run -a -s "-screen 0 1024x768x24"
|
|
|
|
flatpak-builder --user --disable-rofiles-fuse --build-shell=${FLATPAK_MODULE} flatpak_app ${MANIFEST_PATH} <<END
|
|
|
|
|
|
|
|
LANG=C.UTF-8
|
|
|
|
NO_AT_BRIDGE=1
|
|
|
|
dbus-run-session
|
|
|
|
meson test --no-stdsplit --print-errorlogs ${TEST_RUN_ARGS}
|
|
|
|
|
|
|
|
END
|
|
|
|
|
|
|
|
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: build
|
|
|
|
variables:
|
|
|
|
MANIFEST_PATH: "sm.puri.Calls.json"
|
|
|
|
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
|
|
|
|
FLATPAK_MODULE: "calls"
|
|
|
|
# Make sure to keep this in sync with the Flatpak manifest, all arguments
|
|
|
|
# are passed except the config-args because we build it ourselves
|
|
|
|
MESON_ARGS: ""
|
|
|
|
APP_ID: "sm.puri.Calls"
|
|
|
|
BUNDLE: 'gnome-calls.flatpak'
|