3939 fail-fast : false
4040 matrix :
4141 include :
42- - name : Ubuntu 22 .04
43- os : ubuntu-22 .04
42+ - name : Ubuntu 24 .04
43+ os : ubuntu-24 .04
4444 cmake_args : >-
4545 -DQT6=ON
4646 -DQML=ON
5858 cpack_generator : DEB
5959 buildenv_basepath : /home/runner/buildenv
6060 buildenv_script : tools/debian_buildenv.sh
61- artifacts_name : Ubuntu 22 .04 Qt6 DEB
61+ artifacts_name : Ubuntu 24 .04 Qt6 DEB
6262 artifacts_path : build/*.deb
6363 artifacts_slug : ubuntu-jammy
6464 qt_qpa_platform : offscreen
7171 -DMACOS_BUNDLE=ON
7272 -DMODPLUG=ON
7373 -DQT6=ON
74+ -DQML=OFF
7475 -DWAVPACK=ON
7576 -DVCPKG_TARGET_TRIPLET=x64-osx-min1100-release
7677 # TODO: Fix this broken test on macOS
9495 -DMACOS_BUNDLE=ON
9596 -DMODPLUG=ON
9697 -DQT6=ON
98+ -DQML=ON
9799 -DWAVPACK=ON
98100 -DVCPKG_TARGET_TRIPLET=arm64-osx-min1100-release
99101 # TODO: Fix this broken test on macOS
@@ -108,21 +110,20 @@ jobs:
108110 artifacts_path : build/*.dmg
109111 artifacts_slug : macos-macosarm
110112 qt_qpa_platform : offscreen
111- - name : Windows 2022 (MSVC)
113+ - name : Windows 2022 x64
112114 os : windows-2022
113- # TODO: Re-enable FFmpeg after licensing issues have been clarified
114115 # Attention: If you change the cmake_args for the Windows CI build,
115116 # also adjust the for the local Windows build setup in
116117 # ./tools/windows_buildenv.bat
117118 cmake_args : >-
118119 -DBULK=ON
119- -DFFMPEG=OFF
120120 -DHSS1394=ON
121121 -DLOCALECOMPARE=ON
122122 -DMAD=ON
123123 -DMEDIAFOUNDATION=ON
124124 -DMODPLUG=ON
125125 -DQT6=ON
126+ -DQML=ON
126127 -DWAVPACK=ON
127128 -DVCPKG_TARGET_TRIPLET=x64-windows-release
128129 cc : cl
@@ -132,10 +133,40 @@ jobs:
132133 cpack_generator : WIX
133134 buildenv_basepath : C:\buildenv
134135 buildenv_script : tools/windows_buildenv.bat
135- artifacts_name : Windows Installer
136+ artifacts_name : Windows x64 Installer
136137 artifacts_path : build/*.msi
137138 artifacts_slug : windows-win64
138139 qt_qpa_platform : windows
140+ arch : x64
141+ - name : Windows 11 ARM64
142+ os : windows-11-arm
143+ # Attention: If you change the cmake_args for the Windows CI build,
144+ # also adjust the for the local Windows build setup in
145+ # ./tools/windows_buildenv.bat
146+ cmake_args : >-
147+ -DBULK=ON
148+ -DHSS1394=ON
149+ -DLOCALECOMPARE=ON
150+ -DMAD=ON
151+ -DMEDIAFOUNDATION=ON
152+ -DMODPLUG=ON
153+ -DQT6=ON
154+ -DQML=ON
155+ -DWAVPACK=ON
156+ -DVCPKG_TARGET_TRIPLET=arm64-windows-release
157+ -DVCPKG_DEFAULT_HOST_TRIPLET=arm64-windows-release
158+ cc : cl
159+ cxx : cl
160+ # TODO: Fix these broken tests on Windows
161+ ctest_args : --exclude-regex '^AutoDJProcessorTest.*$'
162+ cpack_generator : WIX
163+ buildenv_basepath : C:\buildenv
164+ buildenv_script : tools/windows_buildenv.bat
165+ artifacts_name : Windows ARM64 Installer
166+ artifacts_path : build/*.msi
167+ artifacts_slug : windows-winarm
168+ qt_qpa_platform : windows
169+ arch : arm64
139170
140171 env :
141172 # macOS codesigning
@@ -149,6 +180,7 @@ jobs:
149180 artifact-macos-macosintel : ${{ steps.prepare_deploy.outputs.artifact-macos-macosintel }}
150181 artifact-macos-macosarm : ${{ steps.prepare_deploy.outputs.artifact-macos-macosarm }}
151182 artifact-windows-win64 : ${{ steps.prepare_deploy.outputs.artifact-windows-win64 }}
183+ artifact-windows-winarm : ${{ steps.prepare_deploy.outputs.artifact-windows-winarm }}
152184 steps :
153185 - name : " Check out repository"
154186 uses : actions/checkout@v4.2.2
@@ -169,7 +201,7 @@ jobs:
169201
170202 - name : " [macOS] Set up cmake"
171203 uses : jwlawson/actions-setup-cmake@v2.0
172- # Ubuntu 22 .04 should use the CMake version from the repos.
204+ # Ubuntu 24 .04 should use the CMake version from the repos.
173205 if : runner.os == 'macOS'
174206 with :
175207 # This should always match the minimum required version in
@@ -178,8 +210,9 @@ jobs:
178210
179211 - name : " [Windows] Set up cmake"
180212 uses : jwlawson/actions-setup-cmake@v2.0
181- # Ubuntu 22.04 should use the CMake version from the repos.
182- if : runner.os == 'Windows'
213+ # Ubuntu 24.04 should use the CMake version from the repos.
214+ # On windows-11-arm this action installs the x64 version which has unwanted side effects
215+ if : matrix.os == 'windows-2022'
183216 with :
184217 # This is a workaround for a SSL false positive in cmake 3.26.4
185218 # When downloading the manual. 3.21 is required for installing the
@@ -189,6 +222,18 @@ jobs:
189222 - name : " [Windows] Set up MSVC Developer Command Prompt"
190223 if : runner.os == 'Windows'
191224 uses : ilammy/msvc-dev-cmd@v1
225+ with :
226+ arch : ${{ matrix.arch }}
227+
228+ - name : " [Windows 11 ARM64] Install ARM64 CMake"
229+ if : matrix.os == 'windows-11-arm'
230+ run : |
231+ Invoke-WebRequest -Uri https://github.com/Kitware/CMake/releases/download/v3.30.1/cmake-3.30.1-windows-arm64.zip -OutFile cmake-arm64.zip
232+ Expand-Archive cmake-arm64.zip -DestinationPath $env:USERPROFILE\cmake
233+ $cmakePath = "$env:USERPROFILE\cmake\cmake-3.30.1-windows-arm64\bin"
234+ $cmakePath | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
235+ $env:Path += ";$cmakePath"
236+ cmake --version
192237
193238 - name : " [macOS] install ccache and make"
194239 if : runner.os == 'macOS'
@@ -350,20 +395,36 @@ jobs:
350395 timestamp-digest : SHA256
351396 timeout : 600
352397
398+ - name : " [Windows 11 ARM64] Install WiX Toolset3"
399+ if : matrix.os == 'windows-11-arm'
400+ run : |
401+ choco install wixtoolset
402+ Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1
403+ refreshenv
404+ echo "WIX=$env:WIX" >> $env:GITHUB_ENV
405+
353406 - name : " Package"
407+ id : package
354408 if : matrix.cpack_generator != null
355409 # Use retry loop to work around a race condition on macOS causing
356410 # 'Resource busy' errors with 'hdiutil'. See
357411 # https://github.com/actions/runner-images/issues/7522
358412 uses : nick-fields/retry@v3
359413 with :
360414 timeout_minutes : 30
361- max_attempts : 12
415+ max_attempts : ${{ runner.os == 'macOS' && 12 || 1 }}
362416 retry_wait_seconds : 1
363417 command : |
364418 cd build
365419 cpack -G ${{ matrix.cpack_generator }} -V
366420
421+ - name : Upload failed packaging logs
422+ if : always() && steps.package.outcome == 'failure' && runner.os == 'windows'
423+ uses : actions/upload-artifact@v4
424+ with :
425+ name : ${{ matrix.os }}-logs-packages-wix
426+ path : ${{ github.workspace }}/build/_CPack_Packages/win64/WIX/wix.log
427+
367428 - name : " [Ubuntu] Import PPA GPG key"
368429 if : startsWith(matrix.os, 'ubuntu') && env.RRYAN_AT_MIXXX_DOT_ORG_GPG_PRIVATE_KEY != null
369430 run : gpg --import <(echo "${{ secrets.RRYAN_AT_MIXXX_DOT_ORG_GPG_PRIVATE_KEY }}")
@@ -372,7 +433,7 @@ jobs:
372433
373434 - name : " Package for PPA"
374435 # No need to do the PPA build for both Ubuntu versions
375- if : matrix.name == 'Ubuntu 22 .04'
436+ if : matrix.name == 'Ubuntu 24 .04'
376437 run : |
377438 if [[ "${{ github.ref }}" == "refs/heads/main" ]] && [[ "${{ github.repository }}" == "mixxxdj/mixxx" ]]; then
378439 CPACK_ARGS="-D DEB_UPLOAD_PPA=ppa:mixxx/nightlies"
@@ -442,7 +503,13 @@ jobs:
442503 SSH_PRIVATE_KEY : ${{ secrets.DOWNLOADS_HOSTGATOR_DOT_MIXXX_DOT_ORG_KEY }}
443504 if : runner.os == 'Windows' && inputs.publish && env.SSH_PRIVATE_KEY != null
444505 run : |
445- $Env:PATH="c:\msys64\usr\bin;$Env:PATH"
506+ if (Test-Path "C:\msys64\usr\bin") {
507+ $msysPath="C:\msys64"
508+ } else {
509+ choco install msys2 -y
510+ $msysPath="C:\tools\msys64"
511+ }
512+ $Env:PATH="$msysPath\usr\bin;$Env:PATH"
446513 pacman -S --noconfirm coreutils bash rsync openssh
447514 # Unfortunately, mixing executables from msys64 and mingw (i.e. Git
448515 # Bash) does not work properly and leads to errors like these:
@@ -457,14 +524,14 @@ jobs:
457524 #
458525 # Also see related issue:
459526 # https://github.com/actions/virtual-environments/issues/594
460- Copy-Item -Path "C:\msys64 \usr\bin\bash.exe" -Destination "C:\Program Files\Git\bin\bash.exe" -Force
527+ Copy-Item -Path "$msysPath \usr\bin\bash.exe" -Destination "C:\Program Files\Git\bin\bash.exe" -Force
461528 # By default, MSYS2 uses an
462529 # /etc/profile file that changes
463530 # the current working directory
464531 # when bash is started. We don't
465532 # want this behavior,so we just
466533 # delete it.
467- Remove-Item -Path "C:\msys64 \etc\profile"
534+ Remove-Item -Path "$msysPath \etc\profile"
468535 # Add MSYS2's tools to %PATH%.
469536 Add-Content -Path "$Env:GITHUB_ENV" -Value "PATH=$Env:PATH"
470537
0 commit comments