@@ -11,14 +11,13 @@ jobs:
1111 name : >-
1212 CMake build + tests (${{ matrix.image_name }} ${{ matrix.cmake_flags }})
1313 runs-on : ${{ matrix.image_name }}
14-
1514 strategy :
1615 fail-fast : false
1716 matrix :
1817 include :
1918 # 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
2221 cmake_flags : -DZYAN_NO_LIBC=ON
2322 skip_tests : yes
2423 - image_name : windows-2022
3938
4039 steps :
4140 - name : Checkout
42- uses : actions/checkout@v2
41+ uses : actions/checkout@v4
4342 with : { submodules: recursive }
4443 - name : Configuring
4544 run : |
@@ -53,16 +52,70 @@ jobs:
5352 cd build
5453 ctest -C Release --output-on-failure
5554
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+
56109 msbuild-build :
57110 name : MSBuild build (windows-2022)
58111 runs-on : windows-2022
59112 steps :
60113 - name : Checkout
61- uses : actions/checkout@v2
114+ uses : actions/checkout@v4
62115 with : { submodules: recursive }
63116 - name : Add msbuild to PATH
64117 uses : microsoft/setup-msbuild@v1.1.3
65- with : { vs-version: ' [17,]' }
118+ with : { vs-version: " [17,]" }
66119 - name : Build user-mode
67120 run : |
68121 cd msvc
77130 runs-on : ubuntu-22.04
78131 steps :
79132 - name : Checkout
80- uses : actions/checkout@v2
133+ uses : actions/checkout@v4
81134 with : { submodules: recursive }
82135 - name : Amalgamating sources
83136 run : |
@@ -109,7 +162,7 @@ jobs:
109162 dry-run : false
110163 sanitizer : ${{ matrix.sanitizer }}
111164 - name : Upload Crash
112- uses : actions/upload-artifact@v1
165+ uses : actions/upload-artifact@v4
113166 if : failure() && steps.build.outcome == 'success'
114167 with :
115168 name : ${{ matrix.sanitizer }}-artifacts
0 commit comments