11# yaml-language-server: $schema=https://json.schemastore.org/github-workflow
2- name : Ubuntu 20.04 Focal build with TagLib 2.2 (Qt 6 from artifact)
2+ name : Ubuntu 20.04 Focal build with TagLib 2.2 / 1.11 (Qt 6 from artifact)
33
44# Manual trigger, and automatic on pushes to the mkv/webm taglib-2.2 test branch.
55on :
@@ -15,19 +15,33 @@ permissions:
1515env :
1616 QT_VERSION : 6.10.3
1717 QT_PREFIX : /opt/qt/6.10.3
18- TAGLIB_VERSION : 2.2
19- TAGLIB_PREFIX : /opt/taglib/2.2
2018
2119jobs :
2220 build :
23- name : Ubuntu 20.04 (Focal) compile against TagLib 2.2
21+ name : Ubuntu 20.04 (Focal) compile against TagLib ${{ matrix.taglib_version }}
22+ strategy :
23+ fail-fast : false
24+ matrix :
25+ include :
26+ - taglib_version : " 2.2"
27+ taglib_prefix : /opt/taglib/2.2
28+ taglib_pkgconfig : /opt/taglib/2.2/lib/pkgconfig
29+ build_taglib_from_source : true
30+ artifact_tag : taglib22
31+ - taglib_version : " 1.11"
32+ taglib_prefix : /usr
33+ taglib_pkgconfig : /usr/lib/x86_64-linux-gnu/pkgconfig
34+ build_taglib_from_source : false
35+ artifact_tag : taglib111
2436 runs-on : ubuntu-24.04
2537 container : ubuntu:20.04
2638
2739 env :
2840 DEBIAN_FRONTEND : noninteractive
2941 TZ : Etc/UTC
3042 CMAKE_VERSION : 3.31.8
43+ TAGLIB_VERSION : ${{ matrix.taglib_version }}
44+ TAGLIB_PREFIX : ${{ matrix.taglib_prefix }}
3145
3246 steps :
3347 - name : Check out repository
@@ -96,9 +110,10 @@ jobs:
96110 /tmp/debian_buildenv-focal.sh
97111 chmod +x /tmp/debian_buildenv-focal.sh
98112 /tmp/debian_buildenv-focal.sh setup 2>&1 | tee logs/04-mixxx-buildenv.log
99- # Focal ships TagLib 1.11.1 (libtag1-dev). It stays installed but the
100- # configure step puts /opt/taglib/2.2 first in PKG_CONFIG_PATH, so
101- # Mixxx resolves TagLib 2.2 from the source build below.
113+ # Focal ships TagLib 1.11.1 (libtag1-dev), which has no Matroska
114+ # support. The 2.2 leg overrides it by putting /opt/taglib/2.2 first
115+ # in PKG_CONFIG_PATH; the 1.11 leg uses the system package and thus
116+ # exercises the FFmpeg metadata fallback path.
102117
103118 - name : Build hidapi 0.14.0 (Focal ships 0.9.0)
104119 shell : bash
@@ -115,6 +130,7 @@ jobs:
115130 nm -D /usr/local/lib/libhidapi-hidraw.so.0 | grep -q ' hid_get_report_descriptor$'
116131
117132 - name : Build TagLib ${TAGLIB_VERSION} from source (native Matroska/WebM)
133+ if : matrix.build_taglib_from_source
118134 shell : bash
119135 run : |
120136 set -o pipefail
@@ -203,7 +219,7 @@ jobs:
203219 shell : bash
204220 env :
205221 CMAKE_PREFIX_PATH : /opt/qt/6.10.3:/usr/local:${{ env.TAGLIB_PREFIX }}
206- PKG_CONFIG_PATH : ${{ env.TAGLIB_PREFIX }}/lib/pkgconfig
222+ PKG_CONFIG_PATH : ${{ matrix.taglib_pkgconfig }}
207223 LD_LIBRARY_PATH : /opt/qt/6.10.3/lib:/usr/local/lib:${{ env.TAGLIB_PREFIX }}/lib
208224 CC : gcc-12
209225 CXX : g++-12
@@ -227,13 +243,13 @@ jobs:
227243 2>&1 | tee logs/07-cmake-configure.log
228244 echo '=== TagLib resolved by Mixxx ==='
229245 grep -iE 'TagLib' build/CMakeCache.txt || true
230- grep -E 'Found TagLib|suitable version "2\.2" ' logs/07-cmake-configure.log || true
246+ grep -E 'Found TagLib|suitable version' logs/07-cmake-configure.log || true
231247
232248 - name : Build (Release)
233249 shell : bash
234250 env :
235251 CMAKE_PREFIX_PATH : /opt/qt/6.10.3:/usr/local:${{ env.TAGLIB_PREFIX }}
236- PKG_CONFIG_PATH : ${{ env.TAGLIB_PREFIX }}/lib/pkgconfig
252+ PKG_CONFIG_PATH : ${{ matrix.taglib_pkgconfig }}
237253 LD_LIBRARY_PATH : /opt/qt/6.10.3/lib:/usr/local/lib:${{ env.TAGLIB_PREFIX }}/lib
238254 CC : gcc-12
239255 CXX : g++-12
@@ -263,32 +279,32 @@ jobs:
263279 shell : bash
264280 env :
265281 CMAKE_PREFIX_PATH : /opt/qt/6.10.3:/usr/local:${{ env.TAGLIB_PREFIX }}
266- PKG_CONFIG_PATH : ${{ env.TAGLIB_PREFIX }}/lib/pkgconfig
282+ PKG_CONFIG_PATH : ${{ matrix.taglib_pkgconfig }}
267283 LD_LIBRARY_PATH : /opt/qt/6.10.3/lib:/usr/local/lib:${{ env.TAGLIB_PREFIX }}/lib
268284 CC : gcc-12
269285 CXX : g++-12
270286 run : |
271287 set -o pipefail
272288 export PATH=/opt/qt/6.10.3/bin:$PATH
273- rm -rf /opt/mixxx-taglib22
274- cmake --install build --prefix /opt/mixxx-taglib22 \
289+ rm -rf " /opt/mixxx-${{ matrix.artifact_tag }}"
290+ cmake --install build --prefix " /opt/mixxx-${{ matrix.artifact_tag }}" \
275291 2>&1 | tee logs/10-cmake-install.log
276292 echo '=== Installed runtime tree ==='
277- find /opt/mixxx-taglib22 -type f -printf '%P\n' \
293+ find " /opt/mixxx-${{ matrix.artifact_tag }}" -type f -printf '%P\n' \
278294 | sort | tee logs/10-install-tree.log
279295
280- - name : Package Mixxx runtime (TagLib 2.2 )
296+ - name : Package Mixxx runtime (TagLib ${TAGLIB_VERSION} )
281297 shell : bash
282298 run : |
283299 set -o pipefail
284- tar czf /tmp/mixxx-taglib22 -runtime.tar.gz -C /opt/mixxx-taglib22 .
285- ls -lh /tmp/mixxx-taglib22 -runtime.tar.gz
300+ tar czf " /tmp/mixxx-${{ matrix.artifact_tag }} -runtime.tar.gz" -C " /opt/mixxx-${{ matrix.artifact_tag }}" .
301+ ls -lh " /tmp/mixxx-${{ matrix.artifact_tag }} -runtime.tar.gz"
286302
287303 - name : Upload Mixxx runtime artifact
288304 uses : actions/upload-artifact@v4
289305 with :
290- name : mixxx-taglib22 -runtime-${{ github.run_number }}
291- path : /tmp/mixxx-taglib22 -runtime.tar.gz
306+ name : mixxx-${{ matrix.artifact_tag }} -runtime-${{ github.run_number }}
307+ path : /tmp/mixxx-${{ matrix.artifact_tag }} -runtime.tar.gz
292308 if-no-files-found : error
293309
294310 - name : Collect diagnostics
@@ -315,7 +331,7 @@ jobs:
315331 if : always()
316332 uses : actions/upload-artifact@v4
317333 with :
318- name : ubuntu-20.04-qt6-taglib22-build-${{ github.run_number }}
334+ name : ubuntu-20.04-qt6-taglib22-build-${{ matrix.artifact_tag }}-${{ github.run_number }}
319335 path : logs/
320336 if-no-files-found : warn
321337 retention-days : 14
0 commit comments