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.20220531 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 before_script: - apt-get -y update - apt-get -y install intltool 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