Files
exim-encrypt-dlfunc/.gitlab-ci.yml

144 lines
3.5 KiB
YAML

stages:
- build
- debian-package
- prepare
- release
#.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:
- mkdir ~/.gnupg; chown root:root ~/.gnupg; chmod 700 ~/.gnupg
- eval $(gpg-agent --batch --sh --disable-scdaemon)
- echo "pinentry-mode loopback" > ~/.gnupg/gpg.conf
- echo "allow-loopback-pinentry" > ~/.gnupg/gpg-agent.conf
- gpg-connect-agent /bye
- echo $DEBIAN_SIGNING_KEY_ASC | base64 -d | gpg --batch --import --always-trust --yes
- echo "1DC7C2770DC111723D505DD61614D5CDEE1555A7:6:" | gpg --import-ownertrust
- dpkg-buildpackage --sign-key=1DC7C2770DC111723D505DD61614D5CDEE1555A7
- 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" ]
prepare_job:
stage: prepare
rules:
- if: $CI_COMMIT_TAG
script:
- echo "TAG=v$(cat VERSION)" >> variables.env
artifacts:
reports:
dotenv: variables.env
release_job:
stage: release
image: registry.gitlab.com/gitlab-org/release-cli:latest
needs:
- job: prepare_job
artifacts: true
rules:
- if: $CI_COMMIT_TAG
script:
- echo "running release_job for $TAG"
release:
name: 'Release $CI_COMMIT_TAG'
description: 'Created using the release-cli'
tag_name: '$CI_COMMIT_TAG'
ref: '$CI_COMMIT_SHA'