Skip to content

Commit ebba8d1

Browse files
committed
Add unified build and test workflow; remove legacy Linux workflow
1 parent db03a38 commit ebba8d1

File tree

2 files changed

+87
-54
lines changed

2 files changed

+87
-54
lines changed

.github/workflows/build.yml

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
name: Build and Test
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
workflow_dispatch:
9+
10+
jobs:
11+
build-and-test:
12+
strategy:
13+
matrix:
14+
os: [ ubuntu-22.04, macos-latest, windows-latest ]
15+
fail-fast: false
16+
17+
runs-on: ${{ matrix.os }}
18+
19+
steps:
20+
- name: Checkout code
21+
uses: actions/checkout@v4
22+
with:
23+
submodules: recursive
24+
25+
- name: Install dependencies (Linux)
26+
if: runner.os == 'Linux'
27+
run: |
28+
sudo apt-get update
29+
sudo apt-get install -y \
30+
build-essential \
31+
cmake \
32+
ninja-build \
33+
libasound2-dev \
34+
libjack-jackd2-dev \
35+
ladspa-sdk \
36+
libcurl4-openssl-dev \
37+
libfontconfig1-dev \
38+
libfreetype6-dev \
39+
libx11-dev \
40+
libxcomposite-dev \
41+
libxcursor-dev \
42+
libxext-dev \
43+
libxinerama-dev \
44+
libxrandr-dev \
45+
libxrender-dev \
46+
libglu1-mesa-dev \
47+
mesa-common-dev
48+
49+
- name: Install dependencies (macOS)
50+
if: runner.os == 'macOS'
51+
run: |
52+
brew install cmake ninja
53+
54+
- name: Install dependencies (Windows)
55+
if: runner.os == 'Windows'
56+
run: |
57+
choco install cmake ninja -y
58+
59+
- name: Setup MSVC environment (Windows)
60+
if: runner.os == 'Windows'
61+
uses: ilammy/msvc-dev-cmd@v1
62+
arch: x64
63+
64+
- name: Configure CMake (Windows)
65+
if: runner.os == 'Windows'
66+
run: |
67+
cmake -B build -G Ninja -A x64 `
68+
-DCMAKE_C_COMPILER=cl `
69+
-DCMAKE_CXX_COMPILER=cl `
70+
-DCMAKE_BUILD_TYPE=Release
71+
72+
- name: Configure CMake (macOS)
73+
if: runner.os == 'macOS'
74+
run: cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
75+
76+
- name: Configure CMake (Linux)
77+
if: runner.os == 'Linux'
78+
run: cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
79+
80+
- name: Build
81+
run: cmake --build build --config Release
82+
83+
- name: Run tests
84+
run: ctest --test-dir build --output-on-failure
85+
86+
- name: Installer
87+
run: cmake --build build --target installer --config Release

.github/workflows/linux.yml

Lines changed: 0 additions & 54 deletions
This file was deleted.

0 commit comments

Comments
 (0)