image: debian:bookworm default: # Protect CI infra from rogue jobs timeout: 15 minutes # Allow jobs to be caneled on new commits interruptible: true # Retry on infra hickups automatically retry: max: 1 when: - api_failure - runner_system_failure - scheduler_failure - stuck_or_timeout_failure stages: - build - test - deploy before_script: - apt-get -y update - apt-get -y install ca-certificates build_docs: image: debian:trixie stage: build artifacts: paths: - _build script: - apt-get -y install --on-install-recommends python3-pip python3-sphinx python3-recommonmark - ./doc/build.sh _build except: variables: - $PKG_ONLY == "1" build_meson: stage: build artifacts: paths: - _build expire_in: 3h script: - apt-get -y build-dep . - meson . _build/ -Ddepdatadir=/usr/share -Dfind_orphans=true --werror - ninja -C _build install except: variables: - $PKG_ONLY == "1" build_deb: image: debian:bookworm tags: - aarch64 stage: build artifacts: paths: - '*.deb' script: - rm -f ../*.deb - apt-get -y build-dep . - apt-get -y install devscripts - REV=$(git log -1 --format=%h) - VER=$(dpkg-parsechangelog -SVersion) - DEBFULLNAME="Librem5 CI" - EMAIL="librem5-builds@lists.community.puri.sm" - dch -v"$VER+librem5ci$CI_PIPELINE_ID.$REV" "$MSG" - debuild -i -us -uc -b - cp ../*.deb . build_reference: stage: build needs: - job: build_meson artifacts: true artifacts: paths: - _build/doc script: - apt-get -y install cargo - cd _build - ../cargo.sh doc --no-deps --document-private-items except: variables: - $PKG_ONLY == "1" test: stage: test needs: - job: build_meson artifacts: true script: - apt-get -y build-dep . - apt-get -y install clang-tidy - ninja -C _build test - tools/style-check_build _build except: variables: - $PKG_ONLY == "1" test_style: stage: test needs: [] script: - apt-get -y build-dep . - tools/style-check_source except: variables: - $PKG_ONLY == "1" check_release: stage: test needs: [] only: refs: - main script: - apt-get -y install git python3 - (head -n 1 ./debian/changelog && git tag) | ./debian/check_release.py except: variables: - $PKG_ONLY == "1" pages: stage: deploy needs: - build_docs - build_reference script: - mv _build/ public/ artifacts: paths: - public only: refs: - main