-
Notifications
You must be signed in to change notification settings - Fork 1
129 lines (105 loc) · 2.97 KB
/
ci.yml
File metadata and controls
129 lines (105 loc) · 2.97 KB
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:
branches: [master]
pull_request:
branches: [master]
permissions:
contents: read
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
formatting:
name: Formatting
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install clang-format
run: |
sudo apt-get update
sudo apt-get install -y clang-format
- name: Check formatting
run: ./scripts/format.sh --check
linux-debug-gcc:
name: Linux Debug (GCC)
runs-on: ubuntu-latest
env:
CC: gcc-12
CXX: g++-12
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Cache CMake dependencies
uses: actions/cache@v4
with:
path: |
build/debug/_deps
~/.cache/ccache
key: cmake-deps-${{ runner.os }}-gcc-debug-${{ hashFiles('cmake/Dependencies.cmake') }}
restore-keys: |
cmake-deps-${{ runner.os }}-gcc-
cmake-deps-${{ runner.os }}-
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y ninja-build gcc-12 g++-12 libomp-dev
- name: Configure
run: cmake --preset=debug
- name: Build
run: cmake --build --preset debug
- name: Test
run: ctest --preset=debug
linux-release-clang:
name: Linux Release (Clang)
runs-on: ubuntu-latest
env:
CC: clang
CXX: clang++
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Cache CMake dependencies
uses: actions/cache@v4
with:
path: |
build/release/_deps
~/.cache/ccache
key: cmake-deps-${{ runner.os }}-clang-release-${{ hashFiles('cmake/Dependencies.cmake') }}
restore-keys: |
cmake-deps-${{ runner.os }}-clang-
cmake-deps-${{ runner.os }}-
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y ninja-build clang libomp-dev
- name: Configure
run: cmake --preset=release
- name: Build
run: cmake --build --preset release
- name: Test
run: ctest --preset=release
macos-release:
name: macOS Release
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Cache CMake dependencies
uses: actions/cache@v4
with:
path: |
build/release/_deps
~/Library/Caches/ccache
key: cmake-deps-${{ runner.os }}-release-${{ hashFiles('cmake/Dependencies.cmake') }}
restore-keys: |
cmake-deps-${{ runner.os }}-
- name: Install dependencies
run: brew install ninja libomp
- name: Configure
run: cmake --preset=release
- name: Build
run: cmake --build --preset release
- name: Test
run: ctest --preset=release