List VSTs as instruments #8206
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --- | |
| name: build | |
| 'on': [push, pull_request] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| linux-x86_64: | |
| name: linux-x86_64 | |
| runs-on: ubuntu-22.04 | |
| env: | |
| CMAKE_OPTS: >- | |
| -DUSE_WERROR=ON | |
| -DCMAKE_BUILD_TYPE=RelWithDebInfo | |
| -DTARGET_UARCH=official | |
| -DUSE_COMPILE_CACHE=ON | |
| -DWANT_DEBUG_CPACK=ON | |
| CCACHE_MAXSIZE: 0 | |
| CCACHE_NOCOMPRESS: 1 | |
| MAKEFLAGS: -j2 | |
| steps: | |
| - name: Configure git | |
| run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
| - name: Check out | |
| uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| submodules: recursive | |
| - name: Clone fltk | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: fltk/fltk | |
| path: fltk | |
| ref: 27d991f046bdebb12bfd58f7c05a19f135979c29 | |
| fetch-depth: 1 | |
| - name: Configure winehq | |
| run: | | |
| sudo dpkg --add-architecture i386 | |
| sudo mkdir -pm755 /etc/apt/keyrings | |
| wget -O - https://dl.winehq.org/wine-builds/winehq.key | \ | |
| sudo gpg --dearmor -o /etc/apt/keyrings/winehq-archive.key - | |
| sudo wget -NP /etc/apt/sources.list.d/ \ | |
| https://dl.winehq.org/wine-builds/ubuntu/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources | |
| - name: Install packages | |
| run: | | |
| sudo apt-get update -y | |
| sudo apt-get install -y --no-install-recommends \ | |
| $(xargs < .github/workflows/deps-ubuntu-24.04-gcc.txt) | |
| sudo apt-get install -y --install-recommends g++-multilib gcc-multilib winehq-devel wine-devel-dev | |
| sudo apt-get install -y --install-recommends \ | |
| $(xargs < .github/workflows/deps-ubuntu-24.04-fltk.txt) | |
| - name: Cache ccache data | |
| uses: actions/cache@v3 | |
| with: | |
| key: ccache-${{ github.job }}-${{ github.ref }}-${{ github.run_id }} | |
| restore-keys: | | |
| ccache-${{ github.job }}-${{ github.ref }}- | |
| ccache-${{ github.job }}- | |
| path: ~/.ccache | |
| - name: Configure fltk | |
| run: | | |
| cmake -S fltk -B fltk/build -DFLTK_BUILD_SHARED_LIBS=ON -DFLTK_BACKEND_WAYLAND=ON \ | |
| -DFLTK_USE_LIBDECOR_GTK=OFF -DFLTK_BUILD_TEST=OFF -DFLTK_BUILD_GL=OFF | |
| - name: Install fltk | |
| run: | | |
| cmake --build fltk/build | |
| sudo cmake --install fltk/build --prefix /usr | |
| - name: Configure | |
| run: | | |
| ccache --zero-stats | |
| source /opt/qt5*/bin/qt5*-env.sh || true | |
| cmake -S . \ | |
| -B build \ | |
| $CMAKE_OPTS | |
| - name: Build | |
| run: cmake --build build | |
| - name: Run tests | |
| run: | | |
| cd build/tests | |
| ctest --output-on-failure -j2 | |
| - name: Package | |
| run: | | |
| cmake --build build --target package | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| archive: false | |
| path: build/lmms-*.AppImage | |
| - name: Trim ccache and print statistics | |
| run: | | |
| ccache --cleanup | |
| echo "[ccache config]" | |
| ccache --show-config | |
| echo "[ccache stats]" | |
| ccache --show-stats | |
| env: | |
| CCACHE_MAXSIZE: 500M | |
| linux-arm64: | |
| name: linux-arm64 | |
| runs-on: ubuntu-24.04-arm | |
| env: | |
| CMAKE_OPTS: >- | |
| -DUSE_WERROR=ON | |
| -DCMAKE_BUILD_TYPE=RelWithDebInfo | |
| -DTARGET_UARCH=official | |
| -DUSE_COMPILE_CACHE=ON | |
| -DWANT_DEBUG_CPACK=ON | |
| CCACHE_MAXSIZE: 0 | |
| CCACHE_NOCOMPRESS: 1 | |
| MAKEFLAGS: -j2 | |
| DEBIAN_FRONTEND: noninteractive | |
| steps: | |
| - name: Configure git | |
| run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
| - name: Check out | |
| uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| submodules: recursive | |
| - name: Clone fltk | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: fltk/fltk | |
| path: fltk | |
| ref: 27d991f046bdebb12bfd58f7c05a19f135979c29 | |
| fetch-depth: 1 | |
| - name: Install system packages | |
| run: | | |
| sudo apt-get update -y | |
| sudo apt-get install -y --no-install-recommends \ | |
| $(xargs < .github/workflows/deps-ubuntu-24.04-gcc.txt) | |
| sudo apt-get install -y --install-recommends \ | |
| $(xargs < .github/workflows/deps-ubuntu-24.04-fltk.txt) | |
| - name: Cache ccache data | |
| uses: actions/cache@v3 | |
| with: | |
| key: ccache-${{ github.job }}-${{ github.ref }}-${{ github.run_id }} | |
| restore-keys: | | |
| ccache-${{ github.job }}-${{ github.ref }}- | |
| ccache-${{ github.job }}- | |
| path: ~/.ccache | |
| - name: Configure fltk | |
| run: | | |
| cmake -S fltk -B fltk/build -DFLTK_BUILD_SHARED_LIBS=ON -DFLTK_BACKEND_WAYLAND=ON \ | |
| -DFLTK_USE_LIBDECOR_GTK=OFF -DFLTK_BUILD_TEST=OFF -DFLTK_BUILD_GL=OFF | |
| - name: Install fltk | |
| run: | | |
| cmake --build fltk/build | |
| sudo cmake --install fltk/build --prefix /usr | |
| - name: Configure | |
| run: | | |
| ccache --zero-stats | |
| cmake -S . \ | |
| -B build \ | |
| $CMAKE_OPTS | |
| - name: Build | |
| run: cmake --build build | |
| - name: Run tests | |
| run: | | |
| cd build/tests | |
| ctest --output-on-failure -j2 | |
| - name: Package | |
| run: | | |
| cmake --build build --target package | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| archive: false | |
| path: build/lmms-*.AppImage | |
| - name: Trim ccache and print statistics | |
| run: | | |
| ccache --cleanup | |
| echo "[ccache config]" | |
| ccache --show-config | |
| echo "[ccache stats]" | |
| ccache --show-stats | |
| env: | |
| CCACHE_MAXSIZE: 500M | |
| macos: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: [ x86_64, arm64 ] | |
| include: | |
| - arch: x86_64 | |
| os: macos-15-intel | |
| xcode: "16.4" | |
| - arch: arm64 | |
| os: macos-15 | |
| xcode: "16.4" | |
| name: macos-${{ matrix.arch }} | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| CMAKE_OPTS: >- | |
| -Werror=dev | |
| -DUSE_WERROR=ON | |
| -DCMAKE_BUILD_TYPE=RelWithDebInfo | |
| -DTARGET_UARCH=official | |
| -DUSE_COMPILE_CACHE=ON | |
| CCACHE_MAXSIZE: 0 | |
| CCACHE_NOCOMPRESS: 1 | |
| MAKEFLAGS: -j3 | |
| DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| submodules: recursive | |
| - name: Clean up Homebrew download cache | |
| run: rm -rf ~/Library/Caches/Homebrew/downloads | |
| - name: Restore Homebrew download cache | |
| id: cache-homebrew | |
| uses: actions/cache/restore@v3 | |
| with: | |
| key: n/a - only restore from restore-keys | |
| restore-keys: | | |
| homebrew-${{ matrix.arch }}- | |
| path: ~/Library/Caches/Homebrew/downloads | |
| - name: Cache ccache data | |
| uses: actions/cache@v3 | |
| with: | |
| key: "ccache-${{ github.job }}-${{ matrix.arch }}-${{ github.ref }}\ | |
| -${{ github.run_id }}" | |
| restore-keys: | | |
| ccache-${{ github.job }}-${{ matrix.arch }}-${{ github.ref }}- | |
| ccache-${{ github.job }}-${{ matrix.arch }}- | |
| path: ~/Library/Caches/ccache | |
| - name: Install dependencies | |
| run: | | |
| brew bundle install --verbose | |
| pipx install dmgbuild | |
| pipx ensurepath | |
| env: | |
| HOMEBREW_NO_AUTO_UPDATE: 1 | |
| HOMEBREW_NO_INSTALL_UPGRADE: 1 | |
| HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1 | |
| - name: Configure | |
| run: | | |
| ccache --zero-stats | |
| source .github/workflows/macos-env.sh | |
| mkdir build | |
| cmake -S . \ | |
| -B build \ | |
| -DCMAKE_OSX_ARCHITECTURES=${{ matrix.arch }} \ | |
| $CMAKE_OPTS \ | |
| -DUSE_WERROR=OFF | |
| - name: Build | |
| run: cmake --build build | |
| - name: Run tests | |
| run: | | |
| cd build/tests | |
| ctest --output-on-failure -j3 | |
| - name: Package | |
| run: | | |
| cmake --build build --target package | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| archive: false | |
| path: build/lmms-*.dmg | |
| - name: Trim ccache and print statistics | |
| run: | | |
| ccache --cleanup | |
| echo "[ccache config]" | |
| ccache --show-config | |
| echo "[ccache stats]" | |
| ccache --show-stats --verbose | |
| env: | |
| CCACHE_MAXSIZE: 500MB | |
| - name: Save Homebrew download cache | |
| if: ${{ steps.cache-homebrew.outputs.cache-matched-key != env.key }} | |
| uses: actions/cache/save@v3 | |
| with: | |
| key: ${{ env.key }} | |
| path: ~/Library/Caches/Homebrew/downloads | |
| env: | |
| key: "homebrew-${{ matrix.arch }}\ | |
| -${{ hashFiles('Brewfile.lock.json') }}" | |
| mingw: | |
| name: mingw64 | |
| runs-on: ubuntu-latest | |
| env: | |
| CMAKE_OPTS: >- | |
| -Werror=dev | |
| -DUSE_WERROR=ON | |
| -DCMAKE_BUILD_TYPE=RelWithDebInfo | |
| -DTARGET_UARCH=official | |
| -DUSE_COMPILE_CACHE=ON | |
| CCACHE_MAXSIZE: 0 | |
| CCACHE_NOCOMPRESS: 1 | |
| MAKEFLAGS: -j2 | |
| steps: | |
| - name: Configure git | |
| run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
| - name: Check out | |
| uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| submodules: recursive | |
| - name: Cache vcpkg dependencies | |
| id: cache-deps | |
| uses: actions/cache@v3 | |
| with: | |
| key: vcpkg-mingw${{ matrix.arch }}-${{ hashFiles('vcpkg.json') }} | |
| restore-keys: | | |
| vcpkg-mingw${{ matrix.arch }}- | |
| path: build/vcpkg_installed | |
| - name: Cache ccache data | |
| uses: actions/cache@v3 | |
| with: | |
| key: "ccache-${{ github.job }}-64-${{ github.ref }}\ | |
| -${{ github.run_id }}" | |
| restore-keys: | | |
| ccache-${{ github.job }}-64-${{ github.ref }}- | |
| ccache-${{ github.job }}-64- | |
| path: ~/.ccache | |
| - name: Install dependencies | |
| run: | | |
| sudo .github/workflows/setup-mingw-packages.sh | |
| sudo apt-get install -y --no-install-recommends \ | |
| $(xargs < .github/workflows/deps-ubuntu-24.04-mingw.txt) | |
| - name: Configure | |
| run: | | |
| export VCPKG_ROOT=${VCPKG_INSTALLATION_ROOT} | |
| echo "VCPKG_ROOT=${VCPKG_ROOT}" >> "$GITHUB_ENV" | |
| ccache --zero-stats | |
| cmake -S . \ | |
| -B build \ | |
| -DCMAKE_TOOLCHAIN_FILE="./cmake/toolchains/x64-mingw-vcpkg.cmake" \ | |
| -DVCPKG_MANIFEST_INSTALL="${{ env.should_install_manifest }}" \ | |
| $CMAKE_OPTS | |
| env: | |
| should_install_manifest: | |
| ${{ steps.cache-deps.outputs.cache-hit == 'true' && 'NO' || 'YES' }} | |
| - name: Build | |
| run: cmake --build build | |
| - name: Package | |
| run: cmake --build build --target package | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| archive: false | |
| path: build/lmms-*.exe | |
| - name: Trim ccache and print statistics | |
| run: | | |
| ccache --cleanup | |
| echo "[ccache config]" | |
| ccache --show-config | |
| echo "[ccache stats]" | |
| ccache --show-stats | |
| env: | |
| CCACHE_MAXSIZE: 500M | |
| msvc: | |
| name: msvc-x64 | |
| runs-on: windows-2022 | |
| env: | |
| CCACHE_MAXSIZE: 0 | |
| CCACHE_NOCOMPRESS: 1 | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| submodules: recursive | |
| - name: Cache vcpkg dependencies | |
| id: cache-deps | |
| uses: actions/cache@v3 | |
| with: | |
| key: vcpkg-msvc-x86_64-${{ hashFiles('vcpkg.json') }} | |
| restore-keys: | | |
| vcpkg-msvc-x86_64- | |
| path: build\vcpkg_installed | |
| - name: Cache ccache data | |
| uses: actions/cache@v3 | |
| with: | |
| # yamllint disable rule:line-length | |
| key: "ccache-${{ github.job }}-x64-${{ github.ref }}\ | |
| -${{ github.run_id }}" | |
| restore-keys: | | |
| ccache-${{ github.job }}-x64-${{ github.ref }}- | |
| ccache-${{ github.job }}-x64- | |
| path: ~\AppData\Local\ccache | |
| # yamllint enable rule:line-length | |
| - name: Install tools | |
| run: choco install ccache | |
| - name: Install Qt | |
| uses: jurplel/install-qt-action@d325aaf2a8baeeda41ad0b5d39f84a6af9bcf005 | |
| with: | |
| version: '6.8.*' | |
| arch: "win64_msvc2022_64" | |
| archives: qtbase qtsvg qttools | |
| cache: true | |
| - name: Set up build environment | |
| uses: ilammy/msvc-dev-cmd@cec98b9d092141f74527d0afa6feb2af698cfe89 | |
| with: | |
| arch: x64 | |
| - name: Configure | |
| run: | | |
| ccache --zero-stats | |
| mkdir build -Force | |
| cmake -S . ` | |
| -B build ` | |
| -G Ninja ` | |
| --toolchain C:/vcpkg/scripts/buildsystems/vcpkg.cmake ` | |
| -Werror=dev ` | |
| -DCMAKE_BUILD_TYPE=RelWithDebInfo ` | |
| -DTARGET_UARCH=official ` | |
| -DWANT_QT6=ON ` | |
| -DUSE_COMPILE_CACHE=ON ` | |
| -DUSE_WERROR=ON ` | |
| -DVCPKG_TARGET_TRIPLET="x64-windows" ` | |
| -DVCPKG_HOST_TRIPLET="x64-windows" ` | |
| -DVCPKG_MANIFEST_INSTALL="${{ env.should_install_manifest }}" | |
| env: | |
| should_install_manifest: | |
| ${{ steps.cache-deps.outputs.cache-hit == 'true' && 'NO' || 'YES' }} | |
| - name: Build | |
| run: cmake --build build | |
| - name: Run tests | |
| run: | | |
| cd build/tests | |
| ctest --output-on-failure -j2 | |
| - name: Package | |
| run: cmake --build build --target package | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| archive: false | |
| path: build\lmms-*.exe | |
| - name: Trim ccache and print statistics | |
| run: | | |
| ccache --cleanup | |
| echo "[ccache config]" | |
| ccache --show-config | |
| echo "[ccache stats]" | |
| ccache --show-stats --verbose | |
| env: | |
| CCACHE_MAXSIZE: 500MB | |
| msys2: | |
| name: windows-arm64 | |
| runs-on: windows-11-arm | |
| defaults: | |
| run: | |
| shell: msys2 {0} | |
| env: | |
| CMAKE_OPTS: >- | |
| -DCMAKE_BUILD_TYPE=RelWithDebInfo | |
| -DTARGET_UARCH=official | |
| -DUSE_COMPILE_CACHE=ON | |
| -DCPACK_NSIS_EXECUTABLE=/clang64/bin/makensis.exe | |
| CCACHE_MAXSIZE: 0 | |
| CCACHE_NOCOMPRESS: 1 | |
| MAKEFLAGS: -j2 | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| submodules: recursive | |
| - name: Cache msys2 dependencies | |
| id: cache-deps | |
| uses: actions/cache@v3 | |
| with: | |
| key: windows-arm64-${{ hashFiles('.github/workflows/deps-msys2-clangarm64.txt') }} | |
| restore-keys: | | |
| windows-arm64- | |
| path: \msys64\var\cache\pacman\pkg | |
| - name: Install msys2 | |
| uses: msys2/setup-msys2@v2 | |
| with: | |
| msystem: CLANGARM64 | |
| update: true | |
| - name: Install dependencies | |
| run: pacman --needed --noconfirm -S - < .github/workflows/deps-msys2-clangarm64.txt | |
| - name: Cache ccache data | |
| uses: actions/cache@v3 | |
| with: | |
| key: ccache-${{ github.job }}-${{ github.ref }}-${{ github.run_id }} | |
| restore-keys: | | |
| ccache-${{ github.job }}-${{ github.ref }}- | |
| ccache-${{ github.job }}- | |
| path: ~\AppData\Local\ccache | |
| - name: Configure | |
| run: | | |
| /clang64/bin/ccache.exe --zero-stats | |
| cmake -B build $CMAKE_OPTS | |
| - name: Build | |
| run: cmake --build build | |
| - name: Package | |
| run: cmake --build build --target package | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| archive: false | |
| path: build\lmms-*.exe | |
| - name: Trim ccache and print statistics | |
| run: | | |
| /clang64/bin/ccache.exe --cleanup | |
| echo "[ccache config]" | |
| /clang64/bin/ccache.exe --show-config | |
| echo "[ccache stats]" | |
| /clang64/bin/ccache.exe --show-stats --verbose | |
| env: | |
| CCACHE_MAXSIZE: 500MB |