doca_plugin: add GPL license #23
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: Linux | |
on: [push, pull_request] | |
env: | |
# this test case does not actually test anything but tries to access system | |
# directories that might be inaccessible on build hosts | |
TESTS_CASES_EXCLUDE: sw_collector | |
TESTS_REDUCED_KEYLENGTHS: yes | |
CCACHE_BASEDIR: ${{ github.workspace }} | |
CCACHE_COMPRESS: true | |
CCACHE_MAXSIZE: 200M | |
OS_NAME: linux | |
jobs: | |
pre-check: | |
runs-on: ubuntu-latest | |
outputs: | |
should_skip: ${{ steps.skip-check.outputs.should_skip }} | |
steps: | |
- id: skip-check | |
uses: fkirc/skip-duplicate-actions@master | |
with: | |
concurrent_skipping: 'same_content' | |
latest: | |
needs: pre-check | |
if: ${{ needs.pre-check.outputs.should_skip != 'true' }} | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
test: [ all, default, printf-builtin ] | |
compiler: [ gcc, clang ] | |
leak-detective: [ no, yes ] | |
monolithic: [ no, yes ] | |
exclude: | |
# leaks will show up whether we build monolithic or not | |
- leak-detective: yes | |
monolithic: yes | |
# monolithic builds don't affect the printf-hook implementation | |
- test: printf-builtin | |
monolithic: yes | |
include: | |
- test: apidoc | |
- test: coverage | |
- test: dist | |
- test: nm | |
- test: fuzzing | |
compiler: clang | |
monolithic: yes | |
env: | |
LEAK_DETECTIVE: ${{ matrix.leak-detective || 'no' }} | |
MONOLITHIC: ${{ matrix.monolithic || 'no' }} | |
CC: ${{ matrix.compiler || 'gcc' }} | |
TEST: ${{ matrix.test }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
with: | |
path: ~/.cache/ccache | |
# with regards to ccache, monolithic builds don't differ from regular | |
# builds and, similarly, builds with leak-detective only differ in two | |
# files (LD itself and library.c); but different tests build different | |
# dependencies, so different caches are needed | |
key: ccache-ubuntu-latest-${{ env.CC }}-${{ matrix.test }}-${{ github.sha }} | |
restore-keys: | | |
ccache-ubuntu-latest-${{ env.CC }}-${{ matrix.test }}- | |
ccache-ubuntu-latest-${{ env.CC }}- | |
- run: | | |
sudo apt-get install -qq ccache | |
echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV | |
ccache -z | |
- uses: ./.github/actions/default | |
- run: ccache -s | |
- if: ${{ success() && matrix.test == 'coverage' }} | |
run: bash <(curl -s https://codecov.io/bash) | |
- if: ${{ failure() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Logs ${{ github.job }} | |
path: config.log | |
retention-days: 5 | |
crypto-plugins: | |
needs: pre-check | |
if: ${{ needs.pre-check.outputs.should_skip != 'true' }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ ubuntu-latest, ubuntu-20.04 ] | |
test: [ botan, wolfssl, openssl, openssl-3, gcrypt ] | |
leak-detective: [ no, yes ] | |
exclude: | |
# test custom-built libs only on one platform | |
- os: ubuntu-20.04 | |
test: botan | |
- os: ubuntu-20.04 | |
test: wolfssl | |
- os: ubuntu-20.04 | |
test: openssl-3 | |
env: | |
LEAK_DETECTIVE: ${{ matrix.leak-detective || 'no' }} | |
CC: ${{ matrix.compiler || 'gcc' }} | |
TEST: ${{ matrix.test }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
with: | |
# path is different on newer systems | |
path: | | |
~/.cache/ccache | |
~/.ccache | |
key: ccache-${{ matrix.os }}-${{ env.CC }}-${{ matrix.test }}-${{ github.sha }} | |
restore-keys: | | |
ccache-${{ matrix.os }}-${{ env.CC }}-${{ matrix.test }}- | |
ccache-${{ matrix.os }}-${{ env.CC }}-all-${{ github.sha }} | |
ccache-${{ matrix.os }}-${{ env.CC }}-all- | |
ccache-${{ matrix.os }}-${{ env.CC }}- | |
- run: | | |
sudo apt-get install -qq ccache | |
echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV | |
ccache -z | |
- uses: ./.github/actions/default | |
- run: ccache -s | |
- if: ${{ failure() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Logs ${{ github.job }} | |
path: config.log | |
retention-days: 5 | |
older: | |
needs: pre-check | |
if: ${{ needs.pre-check.outputs.should_skip != 'true' }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ ubuntu-20.04, ubuntu-18.04 ] | |
test: [ all, nm ] | |
compiler: [ gcc, clang ] | |
exclude: | |
- test: nm | |
compiler: clang | |
env: | |
LEAK_DETECTIVE: ${{ matrix.leak-detective || 'no' }} | |
CC: ${{ matrix.compiler || 'gcc' }} | |
TEST: ${{ matrix.test }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
with: | |
path: ~/.ccache | |
key: ccache-${{ matrix.os }}-${{ env.CC }}-${{ matrix.test }}-${{ github.sha }} | |
restore-keys: | | |
ccache-${{ matrix.os }}-${{ env.CC }}-${{ matrix.test }}- | |
ccache-${{ matrix.os }}-${{ env.CC }}- | |
- run: | | |
sudo apt-get install -qq ccache | |
echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV | |
ccache -z | |
- uses: ./.github/actions/default | |
- run: ccache -s | |
- if: ${{ failure() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Logs ${{ github.job }} | |
path: config.log | |
retention-days: 5 |