Skip to content

Commit 6773391

Browse files
committed
ci: add Github actions
1 parent dea2a71 commit 6773391

File tree

3 files changed

+224
-0
lines changed

3 files changed

+224
-0
lines changed

.github/workflows/linux.yml

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: Test on Linux
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
- ci/**
8+
pull_request:
9+
branches:
10+
- main
11+
12+
jobs:
13+
build-and-test:
14+
strategy:
15+
fail-fast: false
16+
17+
matrix:
18+
os: [ubuntu-22.04, ubuntu-24.04]
19+
cppstd: ['17', '20', '23']
20+
build-type: [Debug, Release]
21+
include:
22+
- os: ubuntu-22.04
23+
gcc-version: 11
24+
- os: ubuntu-24.04
25+
gcc-version: 13
26+
- build-type: Debug
27+
cmake-preset: conan-debug
28+
- build-type: Release
29+
cmake-preset: conan-release
30+
31+
name: GCC ${{ matrix.gcc-version }} - C++${{ matrix.cppstd }} - ${{ matrix.build-type }}
32+
33+
runs-on: ${{ matrix.os }}
34+
35+
steps:
36+
- uses: actions/checkout@v4
37+
38+
- name: Check GCC Version
39+
shell: bash
40+
run: |
41+
gcc -dumpversion
42+
(( $(gcc -dumpversion | cut -d. -f1) == ${{ matrix.gcc-version }} ))
43+
44+
- name: Install Conan
45+
uses: turtlebrowser/get-conan@main
46+
47+
- name: Setup Conan
48+
run: |
49+
conan --version
50+
conan profile detect
51+
52+
- name: Install CMake
53+
uses: lukka/get-cmake@latest
54+
55+
- name: Install dependencies
56+
run: >
57+
conan install .
58+
-s compiler.cppstd=${{ matrix.cppstd }}
59+
-s build_type=${{ matrix.build-type }}
60+
-b missing
61+
62+
- name: CMake Configure
63+
run: |
64+
cmake --list-presets
65+
cmake --preset ${{ matrix.cmake-preset }}
66+
67+
- name: Build
68+
run: |
69+
cmake --build --list-presets
70+
cmake --build --preset ${{ matrix.cmake-preset }}
71+
72+
- name: Test
73+
run: |
74+
ctest --list-presets
75+
ctest --preset ${{ matrix.cmake-preset }}

.github/workflows/old_gcc.yml

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: Test on Linux (Old GCC)
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
- ci/**
8+
pull_request:
9+
branches:
10+
- main
11+
12+
jobs:
13+
build-and-test:
14+
strategy:
15+
fail-fast: false
16+
17+
matrix:
18+
os: [ubuntu-22.04]
19+
gcc-version: [9]
20+
cppstd: ['17', '20']
21+
build-type: [Debug, Release]
22+
include:
23+
- build-type: Debug
24+
cmake-preset: conan-debug
25+
- build-type: Release
26+
cmake-preset: conan-release
27+
28+
name: GCC ${{ matrix.gcc-version }} - C++${{ matrix.cppstd }} - ${{ matrix.build-type }}
29+
30+
runs-on: ${{ matrix.os }}
31+
32+
steps:
33+
- uses: actions/checkout@v4
34+
35+
- name: Setup GCC
36+
uses: egor-tensin/setup-gcc@v1
37+
with:
38+
version: ${{ matrix.gcc-version }}
39+
40+
- name: Check GCC Version
41+
shell: bash
42+
run: |
43+
gcc -dumpversion
44+
(( $(gcc -dumpversion | cut -d. -f1) == ${{ matrix.gcc-version }} ))
45+
46+
- name: Install Conan
47+
uses: turtlebrowser/get-conan@main
48+
49+
- name: Setup Conan
50+
run: |
51+
conan --version
52+
conan profile detect
53+
54+
- name: Install CMake
55+
uses: lukka/get-cmake@latest
56+
57+
- name: Install dependencies
58+
run: >
59+
conan install .
60+
-s compiler.cppstd=${{ matrix.cppstd }}
61+
-s build_type=${{ matrix.build-type }}
62+
-b missing
63+
64+
- name: CMake Configure
65+
run: |
66+
cmake --list-presets
67+
cmake --preset ${{ matrix.cmake-preset }}
68+
69+
- name: Build
70+
run: |
71+
cmake --build --list-presets
72+
cmake --build --preset ${{ matrix.cmake-preset }}
73+
74+
- name: Test
75+
run: |
76+
ctest --list-presets
77+
ctest --preset ${{ matrix.cmake-preset }}

.github/workflows/windows.yml

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
name: Test on Windows
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
- ci/**
8+
pull_request:
9+
branches:
10+
- main
11+
12+
jobs:
13+
build-and-test:
14+
strategy:
15+
fail-fast: false
16+
17+
matrix:
18+
os: [windows-2019, windows-2022]
19+
cppstd: ['17', '20', '23']
20+
build-type: [Debug, Release]
21+
exclude:
22+
- os: windows-2019
23+
cppstd: '23'
24+
include:
25+
- os: windows-2019
26+
msvc-version: 142
27+
- os: windows-2022
28+
msvc-version: 143
29+
- build-type: Debug
30+
cmake-preset: conan-debug
31+
- build-type: Release
32+
cmake-preset: conan-release
33+
34+
name: MSVC ${{ matrix.msvc-version }} - C++${{ matrix.cppstd }} - ${{ matrix.build-type }}
35+
36+
runs-on: ${{ matrix.os }}
37+
38+
steps:
39+
- uses: actions/checkout@v4
40+
41+
- name: Install Conan
42+
uses: turtlebrowser/get-conan@main
43+
44+
- name: Setup Conan
45+
run: |
46+
conan --version
47+
conan profile detect
48+
49+
- name: Install CMake
50+
uses: lukka/get-cmake@latest
51+
52+
- name: Install dependencies
53+
run: >
54+
conan install .
55+
-s compiler.cppstd=${{ matrix.cppstd }}
56+
-s build_type=${{ matrix.build-type }}
57+
-b missing
58+
59+
- name: CMake Configure
60+
run: |
61+
cmake --list-presets
62+
cmake --preset conan-default
63+
64+
- name: Build
65+
run: |
66+
cmake --build --list-presets
67+
cmake --build --preset ${{ matrix.cmake-preset }}
68+
69+
- name: Test
70+
run: |
71+
ctest --list-presets
72+
ctest --preset ${{ matrix.cmake-preset }}

0 commit comments

Comments
 (0)