Install gcovr for coverage build #213
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI build | |
on: | |
pull_request: | |
push: | |
# don't run on packaging and dependabot branches | |
branches-ignore: | |
- 'for-debian' | |
- 'debian/**' | |
- 'pristine-tar' | |
- 'dependabot/**' | |
permissions: | |
contents: read | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
container: | |
- 'debian:bookworm' | |
- 'debian:sid' | |
- 'fedora:39' | |
- 'alpine:latest' | |
runs-on: ubuntu-latest | |
container: ${{ matrix.container }} | |
name: ${{ matrix.container }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install dependencies (Debian) | |
if: startsWith(matrix.container, 'debian') | |
run: | | |
export DEBIAN_FRONTEND=noninteractive | |
apt-get update | |
apt-get -y install python3-yaml apache2-bin apache2-dev curl gnutls-bin libapr1-dev libgnutls28-dev make meson openssl pandoc pkgconf procps iproute2 softhsm2 | |
- name: install dependencies (Fedora) | |
if: startsWith(matrix.container, 'fedora') | |
run: | | |
dnf -y install bzip2 curl gcc gnutls-devel gnutls-utils httpd-devel iproute make meson pkgconf python3-pyyaml redhat-rpm-config softhsm | |
- name: install dependencies (Alpine) | |
if: startsWith(matrix.container, 'alpine') | |
run: | | |
apk add apache2 apache2-dev apache2-proxy bash build-base gnutls-dev gnutls-utils make meson musl-dev pkgconf python3 py3-yaml | |
- name: set prefix for container-specific artifacts | |
# this is because upload-artifact doesn't like ":" in file names | |
env: | |
CONTAINER_NAME: ${{ matrix.container }} | |
run: | | |
echo "artifact_prefix=$(echo ${CONTAINER_NAME} | sed s/:/-/)" >> ${GITHUB_ENV} | |
- name: build mod_gnutls and run tests | |
uses: ./.github/build-action/ | |
with: | |
artifact-prefix: ${{ env.artifact_prefix }} | |
coverage: | |
runs-on: ubuntu-latest | |
container: debian:bookworm | |
name: coverage | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install dependencies | |
run: | | |
export DEBIAN_FRONTEND=noninteractive | |
apt-get update | |
apt-get -y install python3-yaml apache2-bin apache2-dev curl gnutls-bin libapr1-dev libgnutls28-dev openssl make meson pkgconf procps iproute2 softhsm2 clang llvm gcovr | |
- name: build mod_gnutls with coverage support | |
uses: ./.github/build-action/ | |
with: | |
cc: clang | |
configure-options: -Db_coverage=true | |
artifact-prefix: coverage | |
- name: generate coverage report | |
run: ninja -C build/ coverage-html | |
- name: store coverage report | |
uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-report | |
path: build/meson-logs/coveragereport/ |