11name : Ubuntu Linux (x86_64)
22
33on :
4- push :
5- branches :
6- - " *"
7- tags :
8- - " *"
9-
10- pull_request :
11- branches :
12- - " *"
4+ workflow_dispatch :
5+
6+ # on:
7+ # push:
8+ # branches:
9+ # - "*"
10+ # tags:
11+ # - "*"
12+ #
13+ # pull_request:
14+ # branches:
15+ # - "*"
1316
1417jobs :
1518 build-shared :
16- name : Shared Library
17- runs-on : ubuntu-latest
19+ name : Build Linux (${{ matrix.artifact-name }})
20+ runs-on : ${{ matrix.runs-on }}
21+ strategy :
22+ fail-fast : false
23+ matrix :
24+ include :
25+ - shared-libs : ON
26+ boost : OFF
27+ runs-on : ubuntu-24.04
28+ artifact-name : shared-stlfs-ubuntu24
29+ - shared-libs : OFF
30+ boost : OFF
31+ runs-on : ubuntu-24.04
32+ artifact-name : static-stlfs-ubuntu24
33+ - shared-libs : ON
34+ boost : ON
35+ runs-on : ubuntu-24.04
36+ artifact-name : shared-boostfs-ubuntu24
37+ - shared-libs : OFF
38+ boost : ON
39+ runs-on : ubuntu-24.04
40+ artifact-name : static-boostfs-ubuntu24
41+ - shared-libs : ON
42+ boost : OFF
43+ runs-on : ubuntu-22.04
44+ artifact-name : shared-stlfs-ubuntu22
45+ - shared-libs : OFF
46+ boost : OFF
47+ runs-on : ubuntu-22.04
48+ artifact-name : static-stlfs-ubuntu22
49+ - shared-libs : ON
50+ boost : ON
51+ runs-on : ubuntu-22.04
52+ artifact-name : shared-boostfs-ubuntu22
53+ - shared-libs : OFF
54+ boost : ON
55+ runs-on : ubuntu-22.04
56+ artifact-name : static-boostfs-ubuntu22
1857
1958 steps :
2059 - uses : actions/checkout@v4
@@ -24,47 +63,31 @@ jobs:
2463 - name : Install Packages
2564 run : |
2665 sudo apt-get update
27- sudo apt-get install -y libgl1-mesa-dev mesa-common-dev libsdl2-dev libglm-dev libgtest-dev libgmock-dev ninja-build
28-
29- - name : Configure Build
30- run : cmake -G "Ninja Multi-Config" -S "${{ github.workspace }}" -B "${{ github.workspace }}/cmake-build" -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" -DCMAKE_VERBOSE_MAKEFILE=YES -DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=YES
31-
32- - name : Build Debug
33- run : cmake --build "${{ github.workspace }}/cmake-build" --config "Debug" --parallel
34-
35- - name : Run Unit Tests
36- run : ctest --test-dir "${{ github.workspace }}/cmake-build" --verbose --build-config "Debug"
37-
38- - name : Build Release
39- run : cmake --build "${{ github.workspace }}/cmake-build" --config "Release" --parallel
40-
41- - name : Install
42- run : |
43- cmake --build "${{ github.workspace }}/cmake-build" --config "Debug" --target install
44- cmake --build "${{ github.workspace }}/cmake-build" --config "Release" --target install
45-
46- - name : Upload Artifact
47- uses : actions/upload-artifact@v4
48- with :
49- name : projectm-linux-shared-latest
50- path : install/*
51-
52- build-static :
53- name : Static Library
54- runs-on : ubuntu-latest
55-
56- steps :
57- - uses : actions/checkout@v4
58- with :
59- submodules : ' recursive'
60-
61- - name : Install Packages
66+ sudo apt-get install --yes --no-install-recommends \
67+ libgl1-mesa-dev \
68+ mesa-common-dev \
69+ libsdl2-dev \
70+ libglm-dev \
71+ libgtest-dev \
72+ libgmock-dev \
73+ ninja-build
74+
75+ - name : Install boost-filesystem-dev
76+ if : " ${{ contains(matrix.boost, 'ON') }}"
6277 run : |
63- sudo apt-get update
64- sudo apt-get install -y libgl1-mesa- dev mesa-common-dev libsdl2-dev libglm-dev libgtest-dev libgmock-dev ninja-build
78+ sudo apt-get install --yes --no-install-recommends \
79+ libboost-filesystem- dev
6580
6681 - name : Configure Build
67- run : cmake -G "Ninja Multi-Config" -S "${{ github.workspace }}" -B "${{ github.workspace }}/cmake-build" -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" -DCMAKE_VERBOSE_MAKEFILE=YES -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=YES
82+ run : |
83+ cmake -G "Ninja Multi-Config" \
84+ -S "${{ github.workspace }}" \
85+ -B "${{ github.workspace }}/cmake-build" \
86+ -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" \
87+ -DCMAKE_VERBOSE_MAKEFILE=YES \
88+ -DBUILD_SHARED_LIBS="${{ matrix.shared-libs }}" \
89+ -DENABLE_BOOST_FILESYSTEM="${{ matrix.boost }}" \
90+ -DBUILD_TESTING=YES
6891
6992 - name : Build Debug
7093 run : cmake --build "${{ github.workspace }}/cmake-build" --config "Debug" --parallel
83106 - name : Upload Artifact
84107 uses : actions/upload-artifact@v4
85108 with :
86- name : projectm-linux-static-latest
87- path : install/*
109+ name : projectm-linux-${{ matrix.artifact-name }}
110+ path : install/*
0 commit comments