Files
squeekboard/.gitlab-ci.yml
Guido Günther 3bdcc4326c ci: Add features to reference build
The whole build still targets ancient glib_v0_14 so pass that on until
squeekboard supports running with glib_v2_70 or anything else halfway
recent.

Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/620>
2024-03-10 15:44:28 +00:00

140 lines
2.6 KiB
YAML

image: debian:trixie
variables:
DEBIAN_FRONTEND: noninteractive
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:
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:
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 --features 'glib_v0_14,zbus_v1_5,clap_v4'
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