55 - pull_request
66
77jobs :
8+ linux-buildtest :
9+ name : Linux build test
10+ permissions :
11+ contents : read
12+ strategy :
13+ fail-fast : false
14+ matrix :
15+ os : [ubuntu-22.04, ubuntu-20.04]
16+ compiler : [gcc, clang]
17+ enableFeatures : [ON, OFF]
18+ runs-on : ${{ matrix.os }}
19+ steps :
20+ - name : checkout repository
21+ uses : actions/checkout@v3
22+
23+ - name : install required packages
24+ run : sudo apt-get update && sudo apt-get install -y libpci-dev libvulkan-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libdconf-dev libdbus-1-dev libmagickcore-dev libxfconf-0-dev libsqlite3-dev rpm librpm-dev libzstd-dev libegl-dev libglx-dev libosmesa6-dev ocl-icd-opencl-dev libcjson-dev libnm-dev libpulse-dev
25+
26+ - name : configure project
27+ env :
28+ CC : ${{ matrix.compiler }}
29+ run: cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_LIBPCI=${{ matrix.enableFeatures }} -DENABLE_VULKAN=${{ matrix.enableFeatures }} -DENABLE_WAYLAND=${{ matrix.enableFeatures }} -DENABLE_XCB_RANDR=${{ matrix.enableFeatures }} -DENABLE_XCB=${{ matrix.enableFeatures }} -DENABLE_XRANDR=${{ matrix.enableFeatures }} -DENABLE_X11=${{ matrix.enableFeatures }} -DENABLE_GIO=${{ matrix.enableFeatures }} -DENABLE_DCONF=${{ matrix.enableFeatures }} -DENABLE_DBUS=${{ matrix.enableFeatures }} -DENABLE_XFCONF=${{ matrix.enableFeatures }} -DENABLE_SQLITE3=${{ matrix.enableFeatures }} -DENABLE_RPM=${{ matrix.enableFeatures }} -DENABLE_IMAGEMAGICK7=${{ matrix.enableFeatures }} -DENABLE_IMAGEMAGICK6=${{ matrix.enableFeatures }} -DENABLE_CHAFA=${{ matrix.enableFeatures }} -DENABLE_ZLIB=${{ matrix.enableFeatures }} -DENABLE_EGL=${{ matrix.enableFeatures }} -DENABLE_GLX=${{ matrix.enableFeatures }} -DENABLE_OSMESA=${{ matrix.enableFeatures }} -DENABLE_OPENCL=${{ matrix.enableFeatures }} -DENABLE_LIBCJSON=${{ matrix.enableFeatures }} -DENABLE_LIBNM=${{ matrix.enableFeatures }} -DENABLE_PULSE=${{ matrix.enableFeatures }} .
30+
31+ - name : build project
32+ run : cmake --build .
33+
34+ - name : run tests
35+ run : ctest
36+
37+ - name : run fastfetch
38+ run : ./fastfetch --disable-linewrap false --hide-cursor false --show-errors true --load-config presets/all
39+
40+ - name : run flashfetch
41+ run : ./flashfetch
42+
843 linux :
944 name : Linux
10- runs-on : ubuntu-latest
45+ runs-on : ubuntu-20.04 # 22.04 ships a newer version of glibc than debian stable, allow those people to use the debian package
1146 permissions :
1247 security-events : write
1348 contents : read
1853 uses : actions/checkout@v3
1954
2055 - name : install required packages
21- run : sudo apt-get update && sudo apt-get install -y libpci-dev libvulkan-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libdconf-dev libdbus-1-dev libmagickcore-dev libxfconf-0-dev libsqlite3-dev rpm librpm-dev libzstd-dev libegl-dev libglx-dev libosmesa6-dev ocl-icd-opencl-dev libcjson-dev libnm-dev
56+ run : sudo apt-get update && sudo apt-get install -y libpci-dev libvulkan-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libdconf-dev libdbus-1-dev libmagickcore-dev libxfconf-0-dev libsqlite3-dev rpm librpm-dev libzstd-dev libegl-dev libglx-dev libosmesa6-dev ocl-icd-opencl-dev libcjson-dev libnm-dev libpulse-dev
2257
2358 - name : Initialize CodeQL
2459 uses : github/codeql-action/init@v2
@@ -130,8 +165,8 @@ jobs:
130165 name : fastfetch-freebsd
131166 path : ./fastfetch-*.*
132167
133- windows :
134- name : Windows
168+ win64 :
169+ name : Win64
135170 runs-on : windows-latest
136171 permissions :
137172 security-events : write
@@ -153,22 +188,6 @@ jobs:
153188 - name : print msys version
154189 run : uname -a
155190
156- # https://github.com/msys2/MINGW-packages/issues/13524#event-7555720785
157- - name : create OpenCL.pc
158- run : |
159- cat > /clang64/lib/pkgconfig/OpenCL.pc << EOF
160- prefix=/clang64
161- exec_prefix=${prefix}
162- libdir=${exec_prefix}/lib
163- includedir=${prefix}/include
164-
165- Name: OpenCL
166- Description: Open Computing Language generic Installable Client Driver Loader
167- Version: 2022.09.30-1
168- Libs: -L${libdir} -lOpenCL.dll
169- Cflags: -I${includedir}
170- EOF
171-
172191 - name : Initialize CodeQL
173192 uses : github/codeql-action/init@v2
174193 with :
@@ -184,7 +203,7 @@ jobs:
184203 uses : github/codeql-action/analyze@v2
185204
186205 - name : copy necessary dlls
187- run : cp /clang64/bin/{libcjson,libOpenCL ,vulkan-1}.dll .
206+ run : cp /clang64/bin/{libcjson,OpenCL ,vulkan-1}.dll .
188207
189208 - name : list features
190209 run : ./fastfetch --list-features
@@ -199,13 +218,71 @@ jobs:
199218 run : ctest
200219
201220 - name : create zip archive
202- run : zip fastfetch-$(./fastfetch --version-raw)-Windows.zip *.dll fastfetch.exe flashfetch.exe
221+ run : zip fastfetch-$(./fastfetch --version-raw)-Win64.zip *.dll fastfetch.exe flashfetch.exe
222+
223+ - name : upload artifacts
224+ uses : actions/upload-artifact@v3
225+ with :
226+ name : fastfetch-win64
227+ path : ./fastfetch-*-Win64.zip
228+
229+ win32 :
230+ name : Win32
231+ runs-on : windows-latest
232+ permissions :
233+ security-events : write
234+ contents : read
235+ defaults :
236+ run :
237+ shell : msys2 {0}
238+ steps :
239+ - name : checkout repository
240+ uses : actions/checkout@v3
241+
242+ - name : setup-msys2
243+ uses : msys2/setup-msys2@v2
244+ with :
245+ msystem : CLANG32
246+ update : true
247+ install : git zip mingw-w64-clang-i686-cmake mingw-w64-clang-i686-clang mingw-w64-clang-i686-cjson mingw-w64-clang-i686-vulkan-loader mingw-w64-clang-i686-opencl-icd
248+
249+ - name : print msys version
250+ run : uname -a
251+
252+ - name : Initialize CodeQL
253+ uses : github/codeql-action/init@v2
254+ with :
255+ languages : c, cpp
256+
257+ - name : configure project
258+ run : env PKG_CONFIG_PATH=/clang32/lib/pkgconfig/:$PKG_CONFIG_PATH cmake -DSET_TWEAK=Off -DBUILD_TESTS=On .
259+
260+ - name : build project
261+ run : cmake --build .
262+
263+ - name : perform CodeQL analysis
264+ uses : github/codeql-action/analyze@v2
265+
266+ - name : copy necessary dlls
267+ run : cp /clang32/bin/{libcjson,OpenCL,vulkan-1}.dll .
268+
269+ - name : run fastfetch
270+ run : time ./fastfetch --disable-linewrap false --hide-cursor false --show-errors true --load-config presets/all
271+
272+ - name : run flashfetch
273+ run : time ./flashfetch
274+
275+ - name : run tests
276+ run : ctest
277+
278+ - name : create zip archive
279+ run : zip fastfetch-$(./fastfetch --version-raw)-win32.zip *.dll fastfetch.exe flashfetch.exe
203280
204281 - name : upload artifacts
205282 uses : actions/upload-artifact@v3
206283 with :
207- name : fastfetch-windows
208- path : ./fastfetch-*-Windows .zip
284+ name : fastfetch-win32
285+ path : ./fastfetch-*-win32 .zip
209286
210287 release :
211288 if : github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'LinusDierheimer/fastfetch'
@@ -215,7 +292,8 @@ jobs:
215292 - linux
216293 - macos
217294 - freebsd
218- - windows
295+ - win64
296+ - win32
219297 permissions :
220298 contents : write
221299 steps :
@@ -235,4 +313,4 @@ jobs:
235313 tag : ${{ needs.linux.outputs.ffversion }}
236314 commit : ${{ github.sha }}
237315 artifactErrorsFailBuild : true
238- artifacts : fastfetch-linux/*,fastfetch-macos/*,fastfetch-freebsd/*,fastfetch-windows /*
316+ artifacts : fastfetch-linux/*,fastfetch-macos/*,fastfetch-freebsd/*,fastfetch-win64/*,fastfetch-win32 /*
0 commit comments