Skip to content

Commit e2adb63

Browse files
committed
Make use of github actions
1 parent 5895701 commit e2adb63

1 file changed

Lines changed: 104 additions & 0 deletions

File tree

.github/workflows/testsuite.yaml

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
name: Test suite
2+
on:
3+
pull_request:
4+
push:
5+
schedule:
6+
- cron: '0 16 * * 5'
7+
8+
jobs:
9+
gcc:
10+
runs-on: ubuntu-latest
11+
strategy:
12+
matrix:
13+
version: [9, 10, 11, 12, 13, 14]
14+
steps:
15+
- name: Checking out the code
16+
uses: actions/checkout@v3
17+
- name: Cache musl toolchain
18+
uses: actions/cache@v3
19+
id: cache-musl
20+
with:
21+
path: x86_64-linux-musl-native
22+
key: musl
23+
- name: Downloading musl-based toolchain
24+
if: steps.cache-musl.outputs.cache-hit != 'true'
25+
run: wget --quiet https://dustri.org/x86_64-linux-musl-native.tgz
26+
- name: Extracting musl-based toolchain
27+
if: steps.cache-musl.outputs.cache-hit != 'true'
28+
run: tar xzf ./x86_64-linux-musl-native.tgz
29+
- name: Setting up gcc version
30+
run: |
31+
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
32+
sudo apt update
33+
sudo apt install -y --no-install-recommends gcc-${{ matrix.version }} g++-${{ matrix.version }}
34+
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-${{ matrix.version }} 100
35+
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ matrix.version }} 100
36+
- name: Build and run the testsuite
37+
run : make --silent -C tests clean gcc run | tee ./results.txt
38+
- name: Check the testsuite's output
39+
shell: bash
40+
run: grep -zvq 'FAIL' ./results.txt
41+
- name: Show logs in case of failure
42+
if: ${{ failure() }}
43+
run: cat ./results.txt
44+
45+
46+
clang:
47+
runs-on: ubuntu-latest
48+
strategy:
49+
matrix:
50+
version: [16, 17, 18]
51+
steps:
52+
- name: Checking out the code
53+
uses: actions/checkout@v3
54+
- name: Cache musl toolchain
55+
uses: actions/cache@v3
56+
id: cache-musl
57+
with:
58+
path: x86_64-linux-musl-native
59+
key: musl
60+
- name: Downloading musl-based toolchain
61+
if: steps.cache-musl.outputs.cache-hit != 'true'
62+
run: wget --quiet https://dustri.org/x86_64-linux-musl-native.tgz
63+
- name: Extracting musl-based toolchain
64+
if: steps.cache-musl.outputs.cache-hit != 'true'
65+
run: tar xzf ./x86_64-linux-musl-native.tgz
66+
- name: Setting up clang version
67+
run: |
68+
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${{ matrix.version }} 100
69+
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${{ matrix.version }} 100
70+
- name: Build and run the testsuite
71+
run : make --silent -C tests clean clang run | tee ./results.txt
72+
- name: Check the testsuite's output
73+
shell: bash
74+
run: grep -zvq 'FAIL' ./results.txt
75+
- name: Show logs in case of failure
76+
if: ${{ failure() }}
77+
run: cat ./results.txt
78+
79+
c_versions:
80+
runs-on: ubuntu-latest
81+
strategy:
82+
matrix:
83+
version: ["c89", "c99", "c11", "c17"]
84+
steps:
85+
- name: Checking out the code
86+
uses: actions/checkout@v3
87+
- name: Cache musl toolchain
88+
uses: actions/cache@v3
89+
id: cache-musl
90+
with:
91+
path: x86_64-linux-musl-native
92+
key: musl
93+
- name: Downloading musl-based toolchain
94+
if: steps.cache-musl.outputs.cache-hit != 'true'
95+
run: wget --quiet https://dustri.org/x86_64-linux-musl-native.tgz
96+
- name: Extracting musl-based toolchain
97+
if: steps.cache-musl.outputs.cache-hit != 'true'
98+
run: tar xzf ./x86_64-linux-musl-native.tgz
99+
- name: Building with clang
100+
shell: bash
101+
run: CFLAGS=-std=${{ matrix.version }} make -C tests clean clang run
102+
- name: Building with gcc
103+
shell: bash
104+
run: CFLAGS=-std=${{ matrix.version }} make -C tests clean gcc run

0 commit comments

Comments
 (0)