3 on: [push, pull_request]
6 # this test case does not actually test anything but tries to access system
7 # directories that might be inaccessible on build hosts
8 TESTS_CASES_EXCLUDE: sw_collector
9 TESTS_REDUCED_KEYLENGTHS: yes
10 CCACHE_BASEDIR: ${{ github.workspace }}
17 runs-on: ubuntu-latest
19 should_skip: ${{ steps.skip-check.outputs.should_skip }}
22 uses: fkirc/skip-duplicate-actions@master
24 concurrent_skipping: 'same_content'
28 if: ${{ needs.pre-check.outputs.should_skip != 'true' }}
29 runs-on: ubuntu-latest
32 test: [ all, default, printf-builtin ]
33 compiler: [ gcc, clang ]
34 leak-detective: [ no, yes ]
35 monolithic: [ no, yes ]
37 # leaks will show up whether we build monolithic or not
40 # monolithic builds don't affect the printf-hook implementation
41 - test: printf-builtin
53 LEAK_DETECTIVE: ${{ matrix.leak-detective || 'no' }}
54 MONOLITHIC: ${{ matrix.monolithic || 'no' }}
55 CC: ${{ matrix.compiler || 'gcc' }}
56 TEST: ${{ matrix.test }}
58 - uses: actions/checkout@v2
59 - uses: actions/cache@v2
62 # with regards to ccache, monolithic builds don't differ from regular
63 # builds and, similarly, builds with leak-detective only differ in two
64 # files (LD itself and library.c); but different tests build different
65 # dependencies, so different caches are needed
66 key: ccache-${{ runner.os }}-${{ env.CC }}-${{ matrix.test }}-${{ github.ref }}:${{ github.sha }}
68 ccache-${{ runner.os }}-${{ env.CC }}-${{ matrix.test }}-${{ github.ref }}:
69 ccache-${{ runner.os }}-${{ env.CC }}-${{ matrix.test }}-
70 ccache-${{ runner.os }}-${{ env.CC }}-
72 sudo apt-get install -qq ccache
73 echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
75 - uses: ./.github/actions/default
77 - if: ${{ success() && matrix.test == 'coverage' }}
78 run: bash <(curl -s https://codecov.io/bash)
79 - if: ${{ failure() }}
80 uses: actions/upload-artifact@v2
82 name: Logs ${{ github.job }}
88 if: ${{ needs.pre-check.outputs.should_skip != 'true' }}
89 runs-on: ubuntu-latest
92 test: [ botan, wolfssl, openssl, gcrypt ]
93 leak-detective: [ no, yes ]
95 LEAK_DETECTIVE: ${{ matrix.leak-detective || 'no' }}
96 TEST: ${{ matrix.test }}
98 - uses: actions/checkout@v2
99 - uses: actions/cache@v2
102 key: ccache-${{ runner.os }}-${{ env.CC }}-${{ matrix.test }}-${{ github.ref }}:${{ github.sha }}
104 ccache-${{ runner.os }}-${{ env.CC }}-${{ matrix.test }}-${{ github.ref }}:
105 ccache-${{ runner.os }}-${{ env.CC }}-${{ matrix.test }}-
106 ccache-${{ runner.os }}-${{ env.CC }}-
107 ccache-${{ runner.os }}-${{ env.CC }}-all-${{ github.ref }}:${{ github.sha }}
108 ccache-${{ runner.os }}-${{ env.CC }}-all-${{ github.ref }}:
109 ccache-${{ runner.os }}-${{ env.CC }}-all-
110 ccache-${{ runner.os }}-${{ env.CC }}-
112 sudo apt-get install -qq ccache
113 echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
115 - uses: ./.github/actions/default
117 - if: ${{ failure() }}
118 uses: actions/upload-artifact@v2
120 name: Logs ${{ github.job }}
126 if: ${{ needs.pre-check.outputs.should_skip != 'true' }}
127 runs-on: ubuntu-16.04
131 compiler: [ gcc, clang ]
137 LEAK_DETECTIVE: ${{ matrix.leak-detective || 'no' }}
138 CC: ${{ matrix.compiler || 'gcc' }}
139 TEST: ${{ matrix.test }}
141 # this is the default with newer versions and fixes builds with clang
144 - uses: actions/checkout@v2
145 - uses: actions/cache@v2
148 key: ccache-xenial-${{ env.CC }}-${{ matrix.test }}-${{ github.ref }}:${{ github.sha }}
150 ccache-xenial-${{ env.CC }}-${{ matrix.test }}-${{ github.ref }}:
151 ccache-xenial-${{ env.CC }}-${{ matrix.test }}-
152 ccache-xenial-${{ env.CC }}-
154 sudo apt-get install -qq ccache
155 echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
157 - uses: ./.github/actions/default
159 - if: ${{ failure() }}
160 uses: actions/upload-artifact@v2
162 name: Logs ${{ github.job }}