-
Notifications
You must be signed in to change notification settings - Fork 0
129 lines (104 loc) · 3.57 KB
/
ci.yml
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
name: CI
on:
push:
pull_request:
jobs:
lint:
runs-on: ubuntu-24.04
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Deps (clang-format, clang-tidy)
run: sudo apt-get install -y clang-format clang-tidy
- name: Run clang-format
run: clang-format -i test_steve.c
continue-on-error: true
- name: Check for changes
run: git diff --exit-code
- name: Run clang-tidy
run: clang-tidy test_steve.c -- -std=c11 -Wall -Wextra -Werror -Wconversion
windows:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
compiler: [clang, cl, gcc]
c_standard: [11, 17]
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Deps (ninja)
run: choco install ninja
- name: Deps (clang)
if: matrix.compiler == 'clang'
shell: powershell
run: choco install llvm -y
- name: Deps (msvc)
if: matrix.compiler == 'cl'
uses: ilammy/msvc-dev-cmd@v1
- name: Deps (gcc)
if: matrix.compiler == 'gcc'
shell: powershell
run: choco install mingw --version=8.1.0 -y
- name: Configure CMake
working-directory: cmake
run: |
cmake -S . -G Ninja -B cmake-windows-${{ matrix.compiler }}-${{ matrix.c_standard }} -DCMAKE_C_COMPILER=${{ matrix.compiler }} -DCMAKE_C_STANDARD=${{ matrix.c_standard }}
- name: Build with CMake
working-directory: cmake
run: cmake --build cmake-windows-${{ matrix.compiler }}-${{ matrix.c_standard }}
- name: Run tests
working-directory: cmake
run: cmake-windows-${{ matrix.compiler }}-${{ matrix.c_standard }}\test_steve.exe
macos:
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
compiler: [clang, gcc-14]
c_standard: [11, 17]
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Deps (gcc)
if: matrix.compiler == 'gcc-14'
run: |
brew install -q gcc
- name: Configure CMake
working-directory: cmake
run: |
cmake -S . -B cmake-macos-${{ matrix.compiler }}-${{ matrix.c_standard }} -DCMAKE_C_COMPILER=${{ matrix.compiler }} -DCMAKE_C_STANDARD=${{ matrix.c_standard }}
- name: Build with CMake
working-directory: cmake
run: cmake --build cmake-macos-${{ matrix.compiler }}-${{ matrix.c_standard }}
- name: Run tests
working-directory: cmake
run: ./cmake-macos-${{ matrix.compiler }}-${{ matrix.c_standard }}/test_steve
linux:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
compiler: [clang, gcc]
c_standard: [11, 17]
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Deps (clang)
if: matrix.compiler == 'clang'
run: |
sudo apt-get install -y clang
- name: Deps (gcc)
if: matrix.compiler == 'gcc'
run: |
sudo apt-get install -y gcc
- name: Configure CMake
working-directory: cmake
run: |
cmake -S . -B cmake-linux-${{ matrix.compiler }}-${{ matrix.c_standard }} -DCMAKE_C_COMPILER=${{ matrix.compiler }} -DCMAKE_C_STANDARD=${{ matrix.c_standard }}
- name: Build with CMake
working-directory: cmake
run: cmake --build cmake-linux-${{ matrix.compiler }}-${{ matrix.c_standard }}
- name: Run tests
working-directory: cmake
run: ./cmake-linux-${{ matrix.compiler }}-${{ matrix.c_standard }}/test_steve