1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
name: Test suite
on:
pull_request:
push:
schedule:
- cron: '0 16 * * 5'
jobs:
gcc:
runs-on: ubuntu-latest
strategy:
matrix:
version: [9, 10, 11, 12, 13, 14]
steps:
- name: Checking out the code
uses: actions/checkout@v3
- name: Cache musl toolchain
uses: actions/cache@v3
id: cache-musl
with:
path: x86_64-linux-musl-native
key: musl
- name: Downloading musl-based toolchain
if: steps.cache-musl.outputs.cache-hit != 'true'
run: wget --quiet https://dustri.org/x86_64-linux-musl-native.tgz
- name: Extracting musl-based toolchain
if: steps.cache-musl.outputs.cache-hit != 'true'
run: tar xzf ./x86_64-linux-musl-native.tgz
- name: Setting up gcc version
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install -y --no-install-recommends gcc-${{ matrix.version }} g++-${{ matrix.version }}
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-${{ matrix.version }} 100
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ matrix.version }} 100
- name: Build and run the testsuite
shell: bash
run : make --silent -C tests clean gcc run | tee ./results.txt
- name: Check the testsuite's output
shell: bash
run: grep -zvq 'FAIL' ./results.txt
- name: Show logs in case of failure
if: ${{ failure() }}
run: cat ./results.txt
old_gcc:
runs-on: ubuntu-latest
container: gcc:${{ matrix.version }}
strategy:
matrix:
version: [4, 5, 6, 7, 8]
steps:
- name: Checking out the code
uses: actions/checkout@v1
- name: Build and run the testsuite
shell: bash
run : make --silent -C tests clean gcc run | tee ./results.txt
- name: Check the testsuite's output
shell: bash
run: grep -zvq 'FAIL' ./results.txt
- name: Show logs in case of failure
if: ${{ failure() }}
run: cat ./results.txt
clang:
runs-on: ubuntu-latest
strategy:
matrix:
version: [16, 17, 18]
steps:
- name: Checking out the code
uses: actions/checkout@v3
- name: Cache musl toolchain
uses: actions/cache@v3
id: cache-musl
with:
path: x86_64-linux-musl-native
key: musl
- name: Downloading musl-based toolchain
if: steps.cache-musl.outputs.cache-hit != 'true'
run: wget --quiet https://dustri.org/x86_64-linux-musl-native.tgz
- name: Extracting musl-based toolchain
if: steps.cache-musl.outputs.cache-hit != 'true'
run: tar xzf ./x86_64-linux-musl-native.tgz
- name: Setting up clang version
run: |
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${{ matrix.version }} 100
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${{ matrix.version }} 100
- name: Build and run the testsuite
shell: bash
run : make --silent -C tests clean clang run | tee ./results.txt
- name: Check the testsuite's output
shell: bash
run: grep -zvq 'FAIL' ./results.txt
- name: Show logs in case of failure
if: ${{ failure() }}
run: cat ./results.txt
c_versions:
runs-on: ubuntu-latest
strategy:
matrix:
version: ["c89", "c99", "c11", "c17"]
steps:
- name: Checking out the code
uses: actions/checkout@v3
- name: Cache musl toolchain
uses: actions/cache@v3
id: cache-musl
with:
path: x86_64-linux-musl-native
key: musl
- name: Downloading musl-based toolchain
if: steps.cache-musl.outputs.cache-hit != 'true'
run: wget --quiet https://dustri.org/x86_64-linux-musl-native.tgz
- name: Extracting musl-based toolchain
if: steps.cache-musl.outputs.cache-hit != 'true'
run: tar xzf ./x86_64-linux-musl-native.tgz
- name: Building with clang
shell: bash
run: CFLAGS=-std=${{ matrix.version }} make -C tests clean clang run
- name: Building with gcc
shell: bash
run: CFLAGS=-std=${{ matrix.version }} make -C tests clean gcc run
fortify_level:
runs-on: ubuntu-latest
strategy:
matrix:
level: [2, 3]
steps:
- name: Checking out the code
uses: actions/checkout@v3
- name: Cache musl toolchain
uses: actions/cache@v3
id: cache-musl
with:
path: x86_64-linux-musl-native
key: musl
- name: Downloading musl-based toolchain
if: steps.cache-musl.outputs.cache-hit != 'true'
run: wget --quiet https://dustri.org/x86_64-linux-musl-native.tgz
- name: Extracting musl-based toolchain
if: steps.cache-musl.outputs.cache-hit != 'true'
run: tar xzf ./x86_64-linux-musl-native.tgz
- name: Building with clang
shell: bash
run: _FORTIFY_SOURCE=${{ matrix.level }} make -C tests clean clang
- name: Building with gcc
shell: bash
run: _FORTIFY_SOURCE=${{ matrix.level }} make -C tests clean gcc
|