# Copyright 2021-2023 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the Apache License 2.0 (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy # in the file LICENSE in the source distribution or at # https://www.openssl.org/source/license.html name: Coverage # Run once a day on: schedule: - cron: '49 0 * * *' permissions: contents: read jobs: coverage: permissions: checks: write # for coverallsapp/github-action to create new checks contents: read # for actions/checkout to fetch code strategy: fail-fast: false matrix: branches: [ { branch: openssl-3.3, extra_config: no-afalgeng enable-fips enable-tfo }, { branch: openssl-3.2, extra_config: no-afalgeng enable-fips enable-tfo }, { branch: openssl-3.1, extra_config: no-afalgeng enable-fips }, { branch: openssl-3.0, extra_config: no-afalgeng enable-fips }, { branch: master, extra_config: no-afalgeng enable-fips enable-tfo } ] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: recursive ref: ${{ matrix.branches.branch }} - name: cache commit id run: | echo "githubid=`/usr/bin/git log -1 --format='%H'`" >>$GITHUB_ENV - name: package installs run: | sudo apt-get update sudo apt-get -yq install lcov sudo apt-get -yq install bison gettext keyutils ldap-utils libldap2-dev libkeyutils-dev python3 python3-paste python3-pyrad slapd tcsh python3-virtualenv virtualenv python3-kdcproxy - name: install Test2::V0 for gost_engine testing uses: perl-actions/install-with-cpanm@v1 with: install: Test2::V0 - name: setup hostname workaround run: sudo hostname localhost - name: config run: CC=gcc ./config --debug --coverage ${{ matrix.branches.extra_config }} no-asm enable-rc5 enable-md2 enable-ssl3 enable-nextprotoneg enable-ssl3-method enable-weak-ssl-ciphers enable-zlib enable-ec_nistp_64_gcc_128 enable-buildtest-c++ enable-ssl-trace enable-trace - name: config dump run: ./configdata.pm --dump - name: make run: make -s -j4 - name: get cpu info run: | cat /proc/cpuinfo ./util/opensslwrap.sh version -c - name: make test run: make test HARNESS_JOBS=${HARNESS_JOBS:-4} TESTS='-test_external_krb5' - name: generate coverage info run: lcov -d . -c --exclude "${PWD}/test/*" --exclude "${PWD}/test/helpers/*" --exclude "${PWD}/test/testutil/*" --exclude "${PWD}/fuzz/*" --exclude "/usr/include/*" -o ./lcov.info - name: Coveralls upload uses: coverallsapp/github-action@v2.2.3 with: github-token: ${{ secrets.github_token }} git-branch: ${{ matrix.branches.branch }} git-commit: ${{ env.githubid }} path-to-lcov: ./lcov.info