include: - 'https://source.puri.sm/Librem5/librem5-ci/raw/master/librem5-pipeline-definitions.yml' - 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml' - project: 'Infrastructure/freedesktop-ci-templates' ref: 'fb9d50ccb3cbbb4c6dc5f9ef53a0ad3cb0d8a177' file: '/templates/ci-fairy.yml' - project: 'guidog/meta-phosh' ref: 'eb1c7f3c602f93e50ba0f1b7da31c936c771a75c' file: '/ci/phosh-common-jobs.yml' - component: "gitlab.gnome.org/GNOME/citemplates/release-service@master" inputs: job-stage: "deploy" dist-job-name: "build:tarball" tarball-artifact-path: "${TARBALL_ARTIFACT_PATH}" stages: - build - test - style-checks - package - test-package - deploy workflow: rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' # Don't trigger a branch pipeline if there is an open MR - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS when: never - if: $CI_COMMIT_TAG - if: $CI_COMMIT_BRANCH variables: DEBIAN_IMAGE: $CI_REGISTRY/gnome/calls/debian:v0.0.2025-09-08 GIT_SUBMODULE_STRATEGY: normal MESON_BUILD_DIR: "_build" .build_dep_before_script: &build_dep_before_script before_script: - export DEBIAN_FRONTEND=noninteractive - apt-get -y update - apt-get -y install eatmydata - eatmydata apt-get -y build-dep . 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: [] <<: *build_dep_before_script script: - 'echo "Build opts: ${BUILD_OPTS}"' - meson ${BUILD_OPTS} . _build - ninja -C _build build:tarball: stage: build image: "${DEBIAN_IMAGE}" tags: [] artifacts: name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}" paths: - "${MESON_BUILD_DIR}/meson-dist" reports: dotenv: build.env <<: *build_dep_before_script script: - meson setup . "${MESON_BUILD_DIR}" - xvfb-run -s -noreset meson dist --include-subprojects -C "${MESON_BUILD_DIR}" - echo "TARBALL_ARTIFACT_PATH=$(ls ${MESON_BUILD_DIR}/meson-dist/*.tar.xz)" >> build.env only: - tags 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: stage: test extends: .phosh-check-po dependencies: - build:native check-consistency: stage: test extends: .phosh-check-consistency check-meson: stage: style-checks extends: - .phosh-check-meson commit-log-check: extends: - .fdo.ci-fairy stage: style-checks variables: GIT_DEPTH: "100" FDO_UPSTREAM_REPO: "GNOME/calls" needs: [] script: | ci-fairy check-commits --signed-off-by --junit-xml=commit-message-junit-report.xml artifacts: reports: junit: commit-message-junit-report.xml rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH' package:deb-debian-trixie:arm64: variables: L5_DOCKER_IMAGE: debian:trixie DEB_BUILD_PROFILES: nodoc tags: - aarch64 extends: .l5-build-debian-package .vars-devel: variables: MANIFEST_PATH: "org.gnome.Calls.json" FLATPAK_MODULE: "calls" APP_ID: "org.gnome.Calls" RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo" BUNDLE: "calls.flatpak" CONFIG_OPTS: >- -Dmanpages=false RUN_TESTS: "false" # Build Flatpak for x86_64 flatpak@x86_64: stage: package extends: ['.flatpak@x86_64', '.vars-devel'] allow_failure: true except: variables: - $PKG_ONLY == "1" # Build Flatpak for aarch64 flatpak@aarch64: stage: package extends: ['.flatpak@aarch64', '.vars-devel'] allow_failure: true except: variables: - $PKG_ONLY == "1" # Publish Flatpak for x86_64 nightly@x86_64: extends: '.publish_nightly' allow_failure: true needs: ['flatpak@x86_64'] # Publish Flatpak for aarch64 nightly@aarch64: extends: '.publish_nightly' allow_failure: true needs: ['flatpak@aarch64'] pages: stage: deploy needs: - build-gtkdoc script: mv _reference/ public/ artifacts: paths: - public only: - main