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
52 LEAK_DETECTIVE: ${{ matrix.leak-detective || 'no' }}
53 MONOLITHIC: ${{ matrix.monolithic || 'no' }}
54 CC: ${{ matrix.compiler || 'gcc' }}
55 TEST: ${{ matrix.test }}
57 - uses: actions/checkout@v2
58 - uses: actions/cache@v2
61 # with regards to ccache, monolithic builds don't differ from regular
62 # builds and, similarly, builds with leak-detective only differ in two
63 # files (LD itself and library.c); but different tests build different
64 # dependencies, so different caches are needed
65 key: ccache-${{ runner.os }}-${{ env.CC }}-${{ matrix.test }}-${{ github.ref }}:${{ github.sha }}
67 ccache-${{ runner.os }}-${{ env.CC }}-${{ matrix.test }}-${{ github.ref }}:
68 ccache-${{ runner.os }}-${{ env.CC }}-${{ matrix.test }}-
69 ccache-${{ runner.os }}-${{ env.CC }}-
71 sudo apt-get install -qq ccache
72 echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
74 - uses: ./.github/actions/default
76 - if: ${{ success() && matrix.test == 'coverage' }}
77 run: bash <(curl -s https://codecov.io/bash)
78 - if: ${{ failure() }}
79 uses: actions/upload-artifact@v2
81 name: Logs ${{ github.job }}
87 if: ${{ needs.pre-check.outputs.should_skip != 'true' }}
88 runs-on: ubuntu-latest
91 test: [ botan, wolfssl, openssl, gcrypt ]
92 leak-detective: [ no, yes ]
94 LEAK_DETECTIVE: ${{ matrix.leak-detective || 'no' }}
95 TEST: ${{ matrix.test }}
97 - uses: actions/checkout@v2
98 - uses: actions/cache@v2
101 key: ccache-${{ runner.os }}-${{ env.CC }}-${{ matrix.test }}-${{ github.ref }}:${{ github.sha }}
103 ccache-${{ runner.os }}-${{ env.CC }}-${{ matrix.test }}-${{ github.ref }}:
104 ccache-${{ runner.os }}-${{ env.CC }}-${{ matrix.test }}-
105 ccache-${{ runner.os }}-${{ env.CC }}-
106 ccache-${{ runner.os }}-${{ env.CC }}-all-${{ github.ref }}:${{ github.sha }}
107 ccache-${{ runner.os }}-${{ env.CC }}-all-${{ github.ref }}:
108 ccache-${{ runner.os }}-${{ env.CC }}-all-
109 ccache-${{ runner.os }}-${{ env.CC }}-
111 sudo apt-get install -qq ccache
112 echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
114 - uses: ./.github/actions/default
116 - if: ${{ failure() }}
117 uses: actions/upload-artifact@v2
119 name: Logs ${{ github.job }}
125 if: ${{ needs.pre-check.outputs.should_skip != 'true' }}
126 runs-on: ubuntu-18.04
130 compiler: [ gcc, clang ]
134 LEAK_DETECTIVE: ${{ matrix.leak-detective || 'no' }}
135 CC: ${{ matrix.compiler || 'gcc' }}
136 TEST: ${{ matrix.test }}
139 - uses: actions/checkout@v2
140 - uses: actions/cache@v2
143 key: ccache-bionic-${{ env.CC }}-${{ matrix.test }}-${{ github.ref }}:${{ github.sha }}
145 ccache-bionic-${{ env.CC }}-${{ matrix.test }}-${{ github.ref }}:
146 ccache-bionic-${{ env.CC }}-${{ matrix.test }}-
147 ccache-bionic-${{ env.CC }}-
149 sudo apt-get install -qq ccache
150 echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
152 - uses: ./.github/actions/default
154 - if: ${{ failure() }}
155 uses: actions/upload-artifact@v2
157 name: Logs ${{ github.job }}
163 if: ${{ needs.pre-check.outputs.should_skip != 'true' }}
164 runs-on: ubuntu-16.04
168 compiler: [ gcc, clang ]
174 LEAK_DETECTIVE: ${{ matrix.leak-detective || 'no' }}
175 CC: ${{ matrix.compiler || 'gcc' }}
176 TEST: ${{ matrix.test }}
177 # this is the default with newer versions and fixes builds with clang
180 - uses: actions/checkout@v2
181 - uses: actions/cache@v2
184 key: ccache-xenial-${{ env.CC }}-${{ matrix.test }}-${{ github.ref }}:${{ github.sha }}
186 ccache-xenial-${{ env.CC }}-${{ matrix.test }}-${{ github.ref }}:
187 ccache-xenial-${{ env.CC }}-${{ matrix.test }}-
188 ccache-xenial-${{ env.CC }}-
190 sudo apt-get install -qq ccache
191 echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
193 - uses: ./.github/actions/default
195 - if: ${{ failure() }}
196 uses: actions/upload-artifact@v2
198 name: Logs ${{ github.job }}