This adds a test which scans the layouts directory for files which have not been added to the resources file. The majority os user-submitted layouts don't include layout registration, and I ran out of ideas for how to make it more visible in the documentation. Instead, it's going to be solved on the other side: the CI pipelines shall fail. To make it easy on experimenters with untidy trees, it's disabled by default.
181 lines
3.5 KiB
YAML
181 lines
3.5 KiB
YAML
image: pureos/byzantium
|
|
|
|
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 python3-pip python3-sphinx
|
|
- pip3 install recommonmark
|
|
- ./doc/build.sh _build
|
|
except:
|
|
variables:
|
|
- $PKG_ONLY == "1"
|
|
|
|
build_meson:
|
|
image: debian:bookworm
|
|
stage: build
|
|
artifacts:
|
|
paths:
|
|
- _build
|
|
expire_in: 3h
|
|
script:
|
|
- mv debian/control-newer debian/control
|
|
- 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:
|
|
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_deb:arm64:
|
|
image: pureos/byzantium
|
|
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_deb:future:
|
|
image: debian:sid
|
|
allow_failure: true
|
|
tags:
|
|
- aarch64
|
|
stage: build
|
|
artifacts:
|
|
paths:
|
|
- '*.deb'
|
|
script:
|
|
- rm -f ../*.deb
|
|
- mv debian/control-newer debian/control
|
|
- 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:
|
|
image: debian:bookworm
|
|
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_lintian:
|
|
stage: test
|
|
needs:
|
|
- job: build_deb
|
|
artifacts: true
|
|
script:
|
|
- apt-get -y install lintian
|
|
- lintian *.deb
|
|
except:
|
|
variables:
|
|
- $PKG_ONLY == "1"
|
|
|
|
test:
|
|
image: debian:bookworm
|
|
stage: test
|
|
needs:
|
|
- job: build_meson
|
|
artifacts: true
|
|
script:
|
|
- mv debian/control-newer debian/control
|
|
- 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:
|
|
- master
|
|
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:
|
|
- master
|