Skip to content

Commit d63073a

Browse files
authored
Add GitHub Actions CI workflow (#78)
* Add GitHub workflow to build repo source * Run workflow for development branches * Run on nested dev branches * Update build.yml * Update build.yml
1 parent 2e1721e commit d63073a

1 file changed

Lines changed: 87 additions & 0 deletions

File tree

‎.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
2+
3+
on:
4+
push:
5+
branches: [master, 'dev/**']
6+
pull_request:
7+
branches: [master]
8+
9+
jobs:
10+
build:
11+
name: ${{ matrix.os-name }}
12+
runs-on: ${{ matrix.runner }}
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
include:
17+
- runner: windows-2022
18+
os-name: Windows
19+
qt-arch: win64_msvc2019_64
20+
- runner: ubuntu-24.04
21+
os-name: Ubuntu
22+
qt-arch: linux_gcc_64
23+
24+
steps:
25+
- uses: actions/checkout@v5
26+
27+
- name: Set up Python
28+
uses: actions/setup-python@v6
29+
with:
30+
python-version: '3.11'
31+
32+
- name: Install Ninja
33+
run: python -m pip install ninja
34+
35+
- name: Set up MSVC environment (Windows)
36+
if: runner.os == 'Windows'
37+
uses: ilammy/msvc-dev-cmd@v1
38+
with:
39+
arch: x64
40+
41+
# install-qt-action exports Qt6_DIR, which find_package(Qt6) picks up. CMAKE_PREFIX_PATH is intentionally
42+
# not set: on Linux that makes devtools_qt_helper.cmake patchelf a libicudata.so.70 dependency into Qt
43+
# targets, which the aqt Qt build and the Ubuntu 24.04 runner do not provide.
44+
- name: Install Qt (Windows)
45+
if: runner.os == 'Windows'
46+
uses: jurplel/install-qt-action@v4
47+
with:
48+
version: '6.7.0'
49+
arch: ${{ matrix.qt-arch }}
50+
dir: 'C:\'
51+
cache: true
52+
53+
- name: Install Qt (Ubuntu)
54+
if: runner.os == 'Linux'
55+
uses: jurplel/install-qt-action@v4
56+
with:
57+
version: '6.7.0'
58+
arch: ${{ matrix.qt-arch }}
59+
dir: '${{ github.workspace }}'
60+
modules: 'qtwaylandcompositor'
61+
cache: true
62+
63+
- name: Install Linux dependencies
64+
if: runner.os == 'Linux'
65+
run: |
66+
sudo apt-get update -q
67+
sudo apt-get install -y \
68+
build-essential \
69+
chrpath \
70+
patchelf \
71+
libxcb-xinerama0 \
72+
libxcb-cursor-dev \
73+
mesa-common-dev \
74+
libglu1-mesa-dev \
75+
libgl1-mesa-dev \
76+
libx11-xcb-dev \
77+
libxkbcommon-x11-dev \
78+
libwayland-dev \
79+
pkg-config \
80+
libtraceevent-dev \
81+
libtracefs-dev
82+
83+
- name: Configure
84+
run: cmake -S . -B build/release -G Ninja -DCMAKE_BUILD_TYPE=Release
85+
86+
- name: Build Release
87+
run: cmake --build build/release

0 commit comments

Comments
 (0)