include: - 'https://source.puri.sm/Librem5/librem5-ci/raw/master/librem5-pipeline-definitions.yml' - 'https://source.puri.sm/Librem5/librem5-ci/raw/master/librem5-pipeline-byzantium-jobs.yml' stages: - build - test - package - test-package build:native: stage: build artifacts: paths: - _build variables: BUILD_OPTS: -Dgtk_doc=true ${COMMON_BUILD_OPTS} WANT_BUILD_DEPS: "true" COMMON_BUILD_OPTS: --werror except: variables: - $PKG_ONLY == "1" 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 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 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 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 # 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: '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/ # 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 -noreset" flatpak-builder --user --disable-rofiles-fuse --build-shell=${FLATPAK_MODULE} flatpak_app ${MANIFEST_PATH} <