@@ -11,14 +11,13 @@ jobs:
11
11
name : >-
12
12
CMake build + tests (${{ matrix.image_name }} ${{ matrix.cmake_flags }})
13
13
runs-on : ${{ matrix.image_name }}
14
-
15
14
strategy :
16
15
fail-fast : false
17
16
matrix :
18
17
include :
19
18
# Do a regular and a no-libc build for each platform.
20
- - image_name : macOS -latest
21
- - image_name : macOS -latest
19
+ - image_name : macos -latest
20
+ - image_name : macos -latest
22
21
cmake_flags : -DZYAN_NO_LIBC=ON
23
22
skip_tests : yes
24
23
- image_name : windows-2022
39
38
40
39
steps :
41
40
- name : Checkout
42
- uses : actions/checkout@v2
41
+ uses : actions/checkout@v4
43
42
with : { submodules: recursive }
44
43
- name : Configuring
45
44
run : |
@@ -53,16 +52,70 @@ jobs:
53
52
cd build
54
53
ctest -C Release --output-on-failure
55
54
55
+ meson-build-and-tests :
56
+ name : >-
57
+ Meson build + tests (${{ matrix.platform }}, ${{ matrix.flavor }} ${{ matrix.mode.name }})
58
+ runs-on : ${{ matrix.platform }}
59
+ strategy :
60
+ fail-fast : false
61
+ matrix :
62
+ flavor :
63
+ - debug
64
+ - release
65
+ mode :
66
+ - { name: default, args: -Dtests=enabled }
67
+ - { name: NO_LIBC, args: -Dnolibc=true }
68
+ platform :
69
+ - macos-latest
70
+ - windows-2022
71
+ - ubuntu-22.04
72
+ extra_envs :
73
+ - {}
74
+ include :
75
+ # Do a few more specialized configurations.
76
+ - platform : ubuntu-22.04
77
+ mode :
78
+ - name : minimal
79
+ args : -Dminimal=enabled -Ddecoder=enabled -Davx512=enabled -Dknc=enabled -Dsegment=enabled -Dtests=enabled
80
+ extra_envs : {}
81
+ flavor : minsize
82
+ exclude :
83
+ - platform : macos-latest
84
+ mode : { name: NO_LIBC, args: -Dnolibc=true }
85
+
86
+ steps :
87
+ - name : Setup meson
88
+ run : |
89
+ pipx install meson ninja
90
+ - name : Checkout
91
+ uses : actions/checkout@v4
92
+ with : { submodules: recursive }
93
+ - name : Activate MSVC and Configure
94
+ if : ${{ matrix.platform == 'windows-2022' }}
95
+ env : ${{ matrix.extra_envs }}
96
+ run : |
97
+ meson setup build-${{ matrix.flavor }} --buildtype=${{ matrix.flavor }} ${{ matrix.mode.args }} --vsenv
98
+ - name : Configuring
99
+ if : ${{ matrix.platform != 'windows-2022' }}
100
+ run : |
101
+ meson setup build-${{ matrix.flavor }} --buildtype=${{ matrix.flavor }} ${{ matrix.mode.args }}
102
+ - name : Building
103
+ run : |
104
+ meson compile -C build-${{ matrix.flavor }}
105
+ - name : Running tests
106
+ run : |
107
+ meson test -C build-${{ matrix.flavor }}
108
+
56
109
msbuild-build :
57
110
name : MSBuild build (windows-2022)
58
111
runs-on : windows-2022
59
112
steps :
60
113
- name : Checkout
61
- uses : actions/checkout@v2
114
+ uses : actions/checkout@v4
62
115
with : { submodules: recursive }
63
116
- name : Add msbuild to PATH
64
117
65
- with : { vs-version: ' [17,]' }
118
+ with : { vs-version: " [17,]" }
66
119
- name : Build user-mode
67
120
run : |
68
121
cd msvc
77
130
runs-on : ubuntu-22.04
78
131
steps :
79
132
- name : Checkout
80
- uses : actions/checkout@v2
133
+ uses : actions/checkout@v4
81
134
with : { submodules: recursive }
82
135
- name : Amalgamating sources
83
136
run : |
@@ -109,7 +162,7 @@ jobs:
109
162
dry-run : false
110
163
sanitizer : ${{ matrix.sanitizer }}
111
164
- name : Upload Crash
112
- uses : actions/upload-artifact@v1
165
+ uses : actions/upload-artifact@v4
113
166
if : failure() && steps.build.outcome == 'success'
114
167
with :
115
168
name : ${{ matrix.sanitizer }}-artifacts
0 commit comments