Skip to content

Commit 995fe5d

Browse files
Create build.yml
1 parent 72899df commit 995fe5d

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

.github/workflows/build.yml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: build
2+
3+
on:
4+
push:
5+
branches: [main, dev]
6+
pull_request:
7+
8+
jobs:
9+
linux:
10+
runs-on: ubuntu-22.04
11+
strategy:
12+
fail-fast: false
13+
matrix:
14+
compiler: [gcc, clang]
15+
16+
steps:
17+
- name: Checkout
18+
uses: actions/checkout@v4
19+
with:
20+
submodules: recursive
21+
22+
- name: Set up ${{ matrix.compiler }}
23+
run: |
24+
if [ "${{ matrix.compiler }}" = "gcc" ]; then
25+
sudo apt-get update
26+
sudo apt-get install -y g++-12
27+
echo "CXX=g++-12" >> $GITHUB_ENV
28+
echo "CC=gcc-12" >> $GITHUB_ENV
29+
else
30+
sudo apt-get update
31+
sudo apt-get install -y clang
32+
echo "CXX=clang++" >> $GITHUB_ENV
33+
echo "CC=clang" >> $GITHUB_ENV
34+
fi
35+
36+
- name: Install dependencies
37+
run: |
38+
sudo apt-get update
39+
sudo apt-get install -y cmake make ninja-build \
40+
libboost-all-dev \
41+
nlohmann-json3-dev \
42+
libspdlog-dev \
43+
libmysqlcppconn-dev
44+
45+
- name: Configure (Release)
46+
run: |
47+
cmake -S . -B build -G Ninja \
48+
-DCMAKE_BUILD_TYPE=Release \
49+
-DVIX_BUILD_EXAMPLES=ON \
50+
-DVIX_BUILD_TESTS=ON \
51+
-DVIX_ORM_USE_MYSQL=ON \
52+
-DVIX_ORM_BUILD_EXAMPLES=OFF \
53+
-DVIX_ORM_BUILD_TESTS=OFF
54+
55+
- name: Build
56+
run: cmake --build build -j
57+
58+
- name: Run tests
59+
run: |
60+
ctest --test-dir build --output-on-failure || true
61+

0 commit comments

Comments
 (0)