stages: - build - debian-package .image-buster: image: '${CONTAINER_REGISTRY_NAME}/exim-encrypt-dlfunc-build-buster' .image-bullseye: image: '${CONTAINER_REGISTRY_NAME}/exim-encrypt-dlfunc-build-bullseye' .image-focal: image: '${CONTAINER_REGISTRY_NAME}/exim-encrypt-dlfunc-build-focal' .code-coverage: stage: build script: - "export PATH=/usr/local/sbin:/usr/local/bin:${PATH}" - meson build -Db_coverage=true - cd build - ninja - ninja test - ninja coverage-xml - 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 }' - ninja coverage-html - mv meson-logs/coveragereport ../coverage artifacts: paths: - coverage/ reports: cobertura: build/meson-logs/coverage.xml .build: stage: build script: - which meson - meson build - cd build - ninja - ninja test artifacts: paths: - build/src/libexim-encrypt-dlfunc.so - build/src/libexim-encrypt-dlfunc-genkeys - build/src/libexim-encrypt-dlfunc-decrypt-secretbox - build/src/libexim-encrypt-dlfunc-decrypt-sealedbox .debian-package: stage: debian-package script: - dpkg-buildpackage --no-sign - mv -t . ../*.deb ../*.dsc ../*.tar.gz ../*.changes ../*.buildinfo artifacts: paths: - ./*.deb - ./*.dsc - ./*.tar.gz - ./*.changes - ./*.buildinfo code-coverage: extends: - .image-bullseye - .code-coverage needs: [ ] build:bullseye: extends: - .image-bullseye - .build - .code-coverage needs: [ ] build:focal: extends: - .image-focal - .build needs: [ ] build:buster: extends: - .build - .image-buster needs: [ ] debian-package:bullseye: extends: - .image-bullseye - .debian-package dependencies: - build:bullseye needs: [ "build:bullseye" ] debian-package:focal: extends: - .image-focal - .debian-package dependencies: - build:focal needs: [ "build:focal" ] debian-package:buster: extends: - .image-buster - .debian-package dependencies: - build:buster needs: [ "build:buster" ]