summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjvoisin2025-10-31 16:30:52 +0100
committerjvoisin2025-11-11 14:09:16 +0100
commitc93890993aded39be2f8f820fb19d8efe2cd9184 (patch)
treed157739e485e02a03397b535ac1593bcf1e40406
parentfe3e4269959ea7534722aa2664a3cac69d9109cf (diff)
Make use of github actions
-rw-r--r--.github/workflows/testsuite.yaml104
1 files changed, 104 insertions, 0 deletions
diff --git a/.github/workflows/testsuite.yaml b/.github/workflows/testsuite.yaml
new file mode 100644
index 0000000..68b2307
--- /dev/null
+++ b/.github/workflows/testsuite.yaml
@@ -0,0 +1,104 @@
1name: Test suite
2on:
3 pull_request:
4 push:
5 schedule:
6 - cron: '0 16 * * 5'
7
8jobs:
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