-
-
Notifications
You must be signed in to change notification settings - Fork 241
150 lines (130 loc) · 3.94 KB
/
Copy pathmain.yml
File metadata and controls
150 lines (130 loc) · 3.94 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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
name: "CI: Test"
on:
push:
branches:
- master
- main
paths-ignore:
- "**.md"
pull_request:
types:
- opened
- reopened
- synchronize
- ready_for_review
paths-ignore:
- "**.md"
jobs:
results:
if: ${{ always() }}
runs-on: ubuntu-latest
name: Test (matrix)
needs: test
steps:
- name: Check build matrix status
if: ${{ needs.test.result != 'success' }}
run: exit 1
test:
name: Test
strategy:
matrix:
qt_version:
- 5.15
- 6.8
platform:
- ubuntu-latest
- windows-2025-vs2026
- macos-15-intel
include:
- qt_version: 6.8
additional_arguments: -D QT_DEFAULT_MAJOR_VERSION=6
- platform: ubuntu-latest
make: make
CXXFLAGS: -Wall -Wextra -pedantic -Werror
MAKEFLAGS: -j2
- platform: macos-15-intel
make: make
CXXFLAGS: -Wall -Wextra -pedantic -Werror
MAKEFLAGS: -j3
- platform: windows-2025-vs2026
make: nmake
CXXFLAGS: /W4 /WX /MP
runs-on: ${{ matrix.platform }}
env:
CXXFLAGS: ${{ matrix.CXXFLAGS }}
MAKEFLAGS: ${{ matrix.MAKEFLAGS }}
steps:
- name: Clone repo
uses: actions/checkout@v6
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: ${{ matrix.qt_version }}
cache: true
- name: Setup MSVC environment for QMake
uses: ilammy/msvc-dev-cmd@v1
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 22
- name: Build library with CMake
run: |
cmake . ${{ matrix.additional_arguments }}
cmake --build .
- name: Build basic example with CMake
working-directory: examples/basic/
run: |
cmake . ${{ matrix.additional_arguments }}
cmake --build .
- name: Build calculator example with CMake
working-directory: examples/calculator/
run: |
cmake . ${{ matrix.additional_arguments }}
cmake --build .
- name: Build sending_arguments example with CMake
working-directory: examples/sending_arguments/
run: |
cmake . ${{ matrix.additional_arguments }}
cmake --build .
- name: Build separate_object example with CMake
working-directory: examples/separate_object/
run: |
cmake . ${{ matrix.additional_arguments }}
cmake --build .
- name: Build windows_raise_widget example with CMake
working-directory: examples/windows_raise_widget/
run: |
cmake . ${{ matrix.additional_arguments }}
cmake --build .
- name: Integration test
run: node .github/scripts/integration-tests.js
- name: Build basic example with QMake
if: ${{ !contains(matrix.platform, 'macos') }}
working-directory: examples/basic/
run: |
qmake
${{ matrix.make }}
- name: Build calculator example with QMake
if: ${{ !contains(matrix.platform, 'macos') }}
working-directory: examples/calculator/
run: |
qmake
${{ matrix.make }}
- name: Build sending_arguments example with QMake
if: ${{ !contains(matrix.platform, 'macos') }}
working-directory: examples/sending_arguments/
run: |
qmake
${{ matrix.make }}
- name: Build separate_object example with QMake
if: ${{ !contains(matrix.platform, 'macos') }}
working-directory: examples/separate_object/
run: |
qmake
${{ matrix.make }}
- name: Build windows_raise_widget example with QMake
if: ${{ !contains(matrix.platform, 'macos') }}
working-directory: examples/windows_raise_widget/
run: |
qmake
${{ matrix.make }}