Skip to content

fix macos tests

fix macos tests #581

Workflow file for this run

on:
push:
env:
instruments_url: "https://ftp.osuosl.org/pub/musescore/soundfont/MuseScore_General"
jobs:
main_job:
continue-on-error: true
strategy:
matrix:
os: [ubuntu-24.04, macos-latest, macos-13, windows-latest]
runs-on: ${{matrix.os}}
steps:
- name: Download
uses: actions/[email protected]
- name: Update Ubuntu
if: matrix.os == 'ubuntu-24.04'
run: sudo apt update
- name: Install dependencies on Ubuntu
if: matrix.os == 'ubuntu-24.04'
run: >
sudo apt install
cmake
fluidsynth
libfluidsynth-dev
qt6-base-dev
qt6-wayland
- name: Install gcovr on Ubuntu
if: matrix.os == 'ubuntu-24.04'
run: pipx install gcovr
- name: Install dependencies on MacOS
if: matrix.os == 'macos-latest' || matrix.os == 'macos-13'
run: brew install fluid-synth ninja qt
- name: Add MSVC to path on Windows
if: matrix.os == 'windows-latest'
uses: ilammy/[email protected]
- name: Install cmake on Windows
if: matrix.os == 'windows-latest'
uses: lukka/[email protected]
- name: Install winget to get Windows packages
if: matrix.os == 'windows-latest'
uses: Cyberboss/install-winget@v1
- name: Install winzip on Windows
if: matrix.os == 'windows-latest'
run: winget install -e --id Corel.WinZip --accept-source-agreements
- name: Install cURL on Windows
if: matrix.os == 'windows-latest'
run: winget install -e --id cURL.cURL
- name: Install Qt on Windows
if: matrix.os == 'windows-latest'
uses: jurplel/[email protected]
with:
version: "6.6.3"
cache: true
- name: Install vcpkg packages
uses: lukka/[email protected]
with:
vcpkgGitCommitId: '47364fbc300756f64f7876b549d9422d5f3ec0d3'
- name: Restore soundfont files from the cache if available
id: soundfont_step
uses: actions/[email protected]
with:
path: share
key: ${{matrix.os}}-soundfont_cache
- name: Download the soundfont if not in the cache
if: steps.soundfont_step.outputs.cache-hit != 'true'
run: >
curl "${{env.instruments_url}}/MuseScore_General.sf2"
--output "share/MuseScore_General.sf2"
- name: Download the soundfont license if not in the cache
if: steps.soundfont_step.outputs.cache-hit != 'true'
run: >
curl "${{env.instruments_url}}/MuseScore_General_License.md"
--output "share/MuseScore_General_License.md"
- name: Configure with tests on Ubuntu
if: matrix.os == 'ubuntu-24.04'
run: >
cmake -S . -B with_tests
-DBUILD_TESTS=ON
-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_TOOLCHAIN_FILE=${{env.VCPKG_ROOT}}/scripts/buildsystems/vcpkg.cmake
-DNO_WARN_AUDIO=ON
-DTRACK_COVERAGE=ON
-DVCPKG_OVERLAY_PORTS=$(pwd)/overlays/fluidsynth
- name: Configure with tests on MacOS 13
if: matrix.os == 'macos-13'
run: >
cmake -S . -B with_tests
-DBUILD_TESTS=ON
-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_TOOLCHAIN_FILE=${{env.VCPKG_ROOT}}/scripts/buildsystems/vcpkg.cmake
-DNO_WARN_AUDIO=ON
-DVCPKG_OVERLAY_PORTS=$(pwd)/overlays/fluidsynth
- name: Configure with tests on MacOS latest
if: matrix.os == 'macos-latest'
run: >
cmake -S . -B with_tests
-DBUILD_TESTS=ON
-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_TOOLCHAIN_FILE=${{env.VCPKG_ROOT}}/scripts/buildsystems/vcpkg.cmake
-DNO_REALTIME_AUDIO=ON
-DNO_WARN_AUDIO=ON
-DVCPKG_OVERLAY_PORTS=$(pwd)/overlays/fluidsynth
- name: Configure with tests on Windows
if: matrix.os == 'windows-latest'
run: >
cmake -S . -B with_tests
-DBUILD_TESTS=ON
-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_TOOLCHAIN_FILE=${{env.VCPKG_ROOT}}/scripts/buildsystems/vcpkg.cmake
-DNO_WARN_AUDIO=ON
- name: Build with tests
run: cmake --build with_tests --config Debug
- name: Test on Unix
if: matrix.os != 'windows-latest'
run: cd with_tests; QT_QPA_PLATFORM=offscreen ctest --build-config Debug --verbose
- name: Test on Windows
if: matrix.os == 'windows-latest'
run: cd with_tests; ctest --build-config Debug --verbose
- name: Run gcovr
if: matrix.os == 'ubuntu-24.04'
run: gcovr --xml "coverage.xml" --filter "$(pwd)/src/"
- name: Upload code coverage
uses: codecov/[email protected]
if: matrix.os == 'ubuntu-24.04'
with:
files: ./coverage.xml
token: ${{ secrets.CODECOV_TOKEN }}
- name: Configure without tests on MacOS latest
if: matrix.os == 'macos-latest'
run: >
cmake -S . -B without_tests
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_TOOLCHAIN_FILE=${{env.VCPKG_ROOT}}/scripts/buildsystems/vcpkg.cmake
-DCPACK_GENERATOR=ZIP
-DCPACK_PACKAGE_FILE_NAME=Justly-MacOS-arm64
-DVCPKG_OVERLAY_PORTS=$(pwd)/overlays/fluidsynth
- name: Configure without tests on MacOS 13
if: matrix.os == 'macos-13'
run: >
cmake -S . -B without_tests
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_TOOLCHAIN_FILE=${{env.VCPKG_ROOT}}/scripts/buildsystems/vcpkg.cmake
-DCPACK_GENERATOR=ZIP
-DCPACK_PACKAGE_FILE_NAME=Justly-MacOS-x64
-DVCPKG_OVERLAY_PORTS=$(pwd)/overlays/fluidsynth
- name: Configure without tests on Ubuntu
if: matrix.os == 'ubuntu-24.04'
run: >
cmake -S . -B without_tests
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_TOOLCHAIN_FILE=${{env.VCPKG_ROOT}}/scripts/buildsystems/vcpkg.cmake
-DCPACK_GENERATOR=TGZ
-DCPACK_PACKAGE_FILE_NAME=Justly-Linux
-DVCPKG_OVERLAY_PORTS=$(pwd)/overlays/fluidsynth
- name: Configure without tests on Windows
if: matrix.os == 'windows-latest'
run: >
cmake -S . -B without_tests
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_TOOLCHAIN_FILE=${{env.VCPKG_ROOT}}/scripts/buildsystems/vcpkg.cmake
-DCPACK_GENERATOR=ZIP
-DCPACK_PACKAGE_FILE_NAME=Justly-Windows
-DCMAKE_VERBOSE_MAKEFILE=ON
- name: Build without tests
run: cmake --build without_tests --config Release
- name: Package
run: cd without_tests; cpack -C Release
- name: Release on a new tag
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/[email protected]
with:
files: |
**/Justly-*.tar.gz
**/Justly-*.zip