PureOS carries rather old versions of rustc and cargo. Attempting to build fails at transitive dependencies, and it's easier to upgrade the compiler than to track down and hold offending depencencies as they come.
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 --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
|