Build gitlab images in gitlab-ci

This commit is contained in:
Konstantin Zangerle
2022-08-24 09:31:36 +02:00
parent 1c84639ac7
commit 067f6e20df

View File

@ -1,115 +1,126 @@
---
include:
- remote: 'https://git.scc.kit.edu/KIT-CERT/publish/-/raw/main/gitlab-ci/build_image.yml'
variables:
BUILD_CONTEXT: ci_container
BUILD_FILE: Dockerfile
IMAGE_NAME: pkg_build-exim-encrypt-dlfunc/bullseye
stages: stages:
- build - build_image
- debian-package - build
- debian-package
.image-buster: .image-buster:
image: '${CONTAINER_REGISTRY_NAME}/exim-encrypt-dlfunc-build-buster' IMAGE_NAME: pkg_build-exim-encrypt-dlfunc/buster
.image-bullseye: .image-bullseye:
image: '${CONTAINER_REGISTRY_NAME}/exim-encrypt-dlfunc-build-bullseye' IMAGE_NAME: pkg_build-exim-encrypt-dlfunc/bullseye
.image-focal: .image-focal:
image: '${CONTAINER_REGISTRY_NAME}/exim-encrypt-dlfunc-build-focal' IMAGE_NAME: pkg_build-exim-encrypt-dlfunc/focal
.code-coverage: #.code-coverage:
stage: build # stage: build
script: # script:
- "export PATH=/usr/local/sbin:/usr/local/bin:${PATH}" # - "export PATH=/usr/local/sbin:/usr/local/bin:${PATH}"
- meson build -Db_coverage=true # - meson build -Db_coverage=true
- cd build # - cd build
- ninja # - ninja
- ninja test # - ninja test
- ninja coverage-xml # - ninja coverage-xml
- grep -Eo 'line-rate="[^"]+"' meson-logs/coverage.xml | head -n 1 | # - grep -Eo 'line-rate="[^"]+"' meson-logs/coverage.xml | head -n 1 |
grep -Eo '[0-9.]+' | awk '{ printf "coverage\x3a %.2f%% of statements\n", $1 * 100 }' # grep -Eo '[0-9.]+' | awk '{ printf "coverage\x3a %.2f%% of statements\n", $1 * 100 }'
- ninja coverage-html # - ninja coverage-html
- mv meson-logs/coveragereport ../coverage # - mv meson-logs/coveragereport ../coverage
artifacts: # artifacts:
paths: # paths:
- coverage/ # - coverage/
reports: # reports:
cobertura: build/meson-logs/coverage.xml # cobertura: build/meson-logs/coverage.xml
#
.build: #.build:
stage: build # stage: build
script: # script:
- which meson # - which meson
- meson build # - meson build
- cd build # - cd build
- ninja # - ninja
- ninja test # - ninja test
artifacts: # artifacts:
paths: # paths:
- build/src/libexim-encrypt-dlfunc.so # - build/src/libexim-encrypt-dlfunc.so
- build/src/libexim-encrypt-dlfunc-genkeys # - build/src/libexim-encrypt-dlfunc-genkeys
- build/src/libexim-encrypt-dlfunc-decrypt-secretbox # - build/src/libexim-encrypt-dlfunc-decrypt-secretbox
- build/src/libexim-encrypt-dlfunc-decrypt-sealedbox # - build/src/libexim-encrypt-dlfunc-decrypt-sealedbox
#
.debian-package: #.debian-package:
stage: debian-package # stage: debian-package
script: # script:
- mkdir ~/.gnupg; chown root:root ~/.gnupg; chmod 700 ~/.gnupg # - mkdir ~/.gnupg; chown root:root ~/.gnupg; chmod 700 ~/.gnupg
- eval $(gpg-agent --batch --sh --disable-scdaemon) # - eval $(gpg-agent --batch --sh --disable-scdaemon)
- echo "pinentry-mode loopback" > ~/.gnupg/gpg.conf # - echo "pinentry-mode loopback" > ~/.gnupg/gpg.conf
- echo "allow-loopback-pinentry" > ~/.gnupg/gpg-agent.conf # - echo "allow-loopback-pinentry" > ~/.gnupg/gpg-agent.conf
- gpg-connect-agent /bye # - gpg-connect-agent /bye
- echo $DEBIAN_SIGNING_KEY_ASC | base64 -d | gpg --batch --import --always-trust --yes # - echo $DEBIAN_SIGNING_KEY_ASC | base64 -d | gpg --batch --import --always-trust --yes
- echo "1DC7C2770DC111723D505DD61614D5CDEE1555A7:6:" | gpg --import-ownertrust # - echo "1DC7C2770DC111723D505DD61614D5CDEE1555A7:6:" | gpg --import-ownertrust
- dpkg-buildpackage --sign-key=1DC7C2770DC111723D505DD61614D5CDEE1555A7 # - dpkg-buildpackage --sign-key=1DC7C2770DC111723D505DD61614D5CDEE1555A7
- mv -t . ../*.deb ../*.dsc ../*.tar.gz ../*.changes ../*.buildinfo # - mv -t . ../*.deb ../*.dsc ../*.tar.gz ../*.changes ../*.buildinfo
artifacts: # artifacts:
paths: # paths:
- ./*.deb # - ./*.deb
- ./*.dsc # - ./*.dsc
- ./*.tar.gz # - ./*.tar.gz
- ./*.changes # - ./*.changes
- ./*.buildinfo # - ./*.buildinfo
#
code-coverage: #code-coverage:
extends: # extends:
- .image-bullseye # - .image-bullseye
- .code-coverage # - .code-coverage
needs: [ ] # needs: [ ]
#
build:bullseye: #build:bullseye:
extends: # extends:
- .image-bullseye # - .image-bullseye
- .build # - .build
- .code-coverage # - .code-coverage
needs: [ ] # needs: [ ]
#
build:focal: #build:focal:
extends: # extends:
- .image-focal # - .image-focal
- .build # - .build
needs: [ ] # needs: [ ]
#
build:buster: #build:buster:
extends: # extends:
- .build # - .build
- .image-buster # - .image-buster
needs: [ ] # needs: [ ]
#
debian-package:bullseye: #debian-package:bullseye:
extends: # extends:
- .image-bullseye # - .image-bullseye
- .debian-package # - .debian-package
dependencies: # dependencies:
- build:bullseye # - build:bullseye
needs: [ "build:bullseye" ] # needs: [ "build:bullseye" ]
#
debian-package:focal: #debian-package:focal:
extends: # extends:
- .image-focal # - .image-focal
- .debian-package # - .debian-package
dependencies: # dependencies:
- build:focal # - build:focal
needs: [ "build:focal" ] # needs: [ "build:focal" ]
#
debian-package:buster: #debian-package:buster:
extends: # extends:
- .image-buster # - .image-buster
- .debian-package # - .debian-package
dependencies: # dependencies:
- build:buster # - build:buster
needs: [ "build:buster" ] # needs: [ "build:buster" ]