mirror of
https://gitlab.gnome.org/GNOME/calls.git
synced 2024-11-19 01:51:46 +00:00
dea8b111d4
From now on intltool will be part of the image, so we don't need to install it explicitly any more.
142 lines
3.6 KiB
YAML
142 lines
3.6 KiB
YAML
include:
|
|
- 'https://source.puri.sm/Librem5/librem5-ci/raw/master/librem5-pipeline-definitions.yml'
|
|
|
|
stages:
|
|
- build
|
|
- test
|
|
- package
|
|
- test-package
|
|
- deploy
|
|
|
|
variables:
|
|
L5_DOCKER_IMAGE: debian:bookworm
|
|
DEBIAN_IMAGE: $CI_REGISTRY/gnome/calls/debian:v0.0.20220817
|
|
GIT_SUBMODULE_STRATEGY: normal
|
|
|
|
build:native:
|
|
stage: build
|
|
artifacts:
|
|
paths:
|
|
- _build
|
|
variables:
|
|
COMMON_BUILD_OPTS: -Db_coverage=true
|
|
BUILD_OPTS: -Dgtk_doc=true ${COMMON_BUILD_OPTS}
|
|
WANT_BUILD_DEPS: "true"
|
|
except:
|
|
variables:
|
|
- $PKG_ONLY == "1"
|
|
image: "${DEBIAN_IMAGE}"
|
|
tags: []
|
|
script:
|
|
- 'echo "Build opts: ${BUILD_OPTS}"'
|
|
- meson ${BUILD_OPTS} . _build
|
|
- ninja -C _build
|
|
|
|
test:native:
|
|
extends: build:native
|
|
stage: test
|
|
dependencies:
|
|
- build:native
|
|
script:
|
|
- export LC_ALL=C.UTF-8
|
|
- xvfb-run -s -noreset ninja -C _build test
|
|
- cp _build/src/libcalls-vala.a.p/*.c _build
|
|
- ninja -C _build coverage
|
|
coverage: '/^lines:\s+([\d.]+\%)\s+/'
|
|
|
|
build-gtkdoc:
|
|
extends: build:native
|
|
stage: test
|
|
dependencies:
|
|
- build:native
|
|
script:
|
|
- ninja -C _build calls-doc
|
|
- mv _build/doc/html/ _reference/
|
|
artifacts:
|
|
paths:
|
|
- _reference
|
|
|
|
check-po:
|
|
extends: build:native
|
|
stage: test
|
|
dependencies:
|
|
- build:native
|
|
script:
|
|
# barf on untranslated C or UI 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|ui\)' && { intltool-update -m; exit 1; } || exit 0
|
|
|
|
package:deb-pureos-byzantium:arm64:
|
|
variables:
|
|
L5_DOCKER_IMAGE: pureos/byzantium
|
|
DEB_BUILD_PROFILES: nodoc
|
|
tags:
|
|
- aarch64
|
|
extends: .l5-build-debian-package
|
|
|
|
# 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
|
|
timeout: 4h
|
|
# Make CI pass while I figure things out
|
|
allow_failure: 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'
|
|
reports:
|
|
junit: '.flatpak-builder/build/${FLATPAK_MODULE}/_flatpak_build/meson-logs/testlog.junit.xml'
|
|
expire_in: 14 days
|
|
cache:
|
|
- key: "$CI_JOB_NAME"
|
|
paths:
|
|
- '.flatpak-builder/downloads'
|
|
- '.flatpak-builder/git'
|
|
- key: "$CI_JOB_NAME"
|
|
paths:
|
|
- '.flatpak-builder/cache'
|
|
- '.flatpak-builder/ccache'
|
|
except:
|
|
variables:
|
|
- $PKG_ONLY == "1"
|
|
|
|
flatpak:master:
|
|
extends: .flatpak
|
|
stage: package
|
|
variables:
|
|
MANIFEST_PATH: "org.gnome.Calls.json"
|
|
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
|
|
FLATPAK_MODULE: "calls"
|
|
MESON_ARGS: ""
|
|
APP_ID: "org.gnome.Calls"
|
|
BUNDLE: "calls.flatpak"
|
|
|
|
pages:
|
|
stage: deploy
|
|
needs:
|
|
- build-gtkdoc
|
|
script:
|
|
mv _reference/ public/
|
|
artifacts:
|
|
paths:
|
|
- public
|
|
only:
|
|
- master
|