From 4163973319e44f7f3f5baef8c99b1a2159c426bd Mon Sep 17 00:00:00 2001 From: tooomm Date: Sun, 12 Apr 2026 12:00:46 +0200 Subject: [PATCH 1/9] deduplication --- .github/workflows/desktop-build.yml | 30 +++++++++-------------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index aeed5da81..c05bf0c39 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -159,7 +159,7 @@ jobs: timeout-minutes: 70 env: NAME: ${{matrix.distro}}${{matrix.version}} - CACHE: ${{github.workspace}}/.cache/${{matrix.distro}}${{matrix.version}} # directory for caching docker image and ccache + CACHE: ${{github.workspace}}/.cache/${{matrix.distro}}${{matrix.version}} # directory for caching docker image and ccache # Cache size over the entire repo is 10Gi: # https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy CCACHE_SIZE: 550M @@ -281,12 +281,9 @@ jobs: override_target: 13 make_package: 1 package_suffix: "-macOS13_Intel" - qt_version: 6.11.* qt_arch: clang_64 - qt_modules: qtimageformats qtmultimedia qtwebsockets cmake_generator: Ninja use_ccache: 1 - ccache_eviction_age: 7d - os: macOS target: 14 @@ -296,12 +293,9 @@ jobs: type: Release make_package: 1 package_suffix: "-macOS14" - qt_version: 6.11.* qt_arch: clang_64 - qt_modules: qtimageformats qtmultimedia qtwebsockets cmake_generator: Ninja use_ccache: 1 - ccache_eviction_age: 7d - os: macOS target: 15 @@ -311,12 +305,9 @@ jobs: type: Release make_package: 1 package_suffix: "-macOS15" - qt_version: 6.11.* qt_arch: clang_64 - qt_modules: qtimageformats qtmultimedia qtwebsockets cmake_generator: Ninja use_ccache: 1 - ccache_eviction_age: 7d - os: macOS target: 15 @@ -324,12 +315,9 @@ jobs: soc: Apple xcode: "16.4" type: Debug - qt_version: 6.11.* qt_arch: clang_64 - qt_modules: qtimageformats qtmultimedia qtwebsockets cmake_generator: Ninja use_ccache: 1 - ccache_eviction_age: 7d - os: Windows target: 10 @@ -337,9 +325,7 @@ jobs: type: Release make_package: 1 package_suffix: "-Win10" - qt_version: 6.11.* qt_arch: win64_msvc2022_64 - qt_modules: qtimageformats qtmultimedia qtwebsockets cmake_generator: "Visual Studio 17 2022" cmake_generator_platform: x64 @@ -352,6 +338,9 @@ jobs: # Cache size over the entire repo is 10Gi: # https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy CCACHE_SIZE: 550M + CCACHE_EVICTION_AGE: 7d + QT_VERSION: 6.11.* + QT_MODULES: qtimageformats qtmultimedia qtwebsockets steps: - name: Checkout @@ -388,7 +377,7 @@ jobs: - name: Resolve latest Qt patch version id: resolve_qt_version shell: bash - run: .ci/resolve_latest_aqt_qt_version.sh "${{matrix.qt_version}}" + run: .ci/resolve_latest_aqt_qt_version.sh "${{ env.QT_VERSION }}" - name: Restore thin Qt ${{ steps.resolve_qt_version.outputs.version }} libraries (${{ matrix.soc }} macOS) if: matrix.os == 'macOS' @@ -406,7 +395,7 @@ jobs: with: version: ${{ steps.resolve_qt_version.outputs.version }} arch: ${{matrix.qt_arch}} - modules: ${{matrix.qt_modules}} + modules: ${{env.QT_MODULES}} cache: false dir: ${{github.workspace}} @@ -421,15 +410,15 @@ jobs: path: ${{ github.workspace }}/Qt key: thin-qt-macos-${{ matrix.soc }}-${{ steps.resolve_qt_version.outputs.version }} - - name: Install Qt ${{matrix.qt_version}} (Windows) + - name: Install Qt ${{ env.QT_VERSION }} (Windows) if: matrix.os == 'Windows' uses: jurplel/install-qt-action@v4 with: - # qt 6.11.0 only works with aqtinstall directly from git until aqtinstall 3.4 is released + # Qt 6.11.0 only works with aqtinstall directly from git until aqtinstall 3.4 is released aqtsource: git+https://github.com/miurahr/aqtinstall.git version: ${{ steps.resolve_qt_version.outputs.version }} arch: ${{matrix.qt_arch}} - modules: ${{matrix.qt_modules}} + modules: ${{env.QT_MODULES}} cache: true - name: Install NSIS @@ -463,7 +452,6 @@ jobs: MACOS_CI_KEYCHAIN_PWD: ${{ secrets.PROD_MACOS_CI_KEYCHAIN_PWD }} DEVELOPER_DIR: '/Applications/Xcode_${{matrix.xcode}}.app/Contents/Developer' TARGET_MACOS_VERSION: ${{ matrix.override_target }} - CCACHE_EVICTION_AGE: ${{ matrix.ccache_eviction_age }} run: .ci/compile.sh --server --test --vcpkg # Delete used cache to emulate a ccache update. See https://github.com/actions/cache/issues/342 From cf9b8a37df6954ce384e38c0dcd3ea9c9c235660 Mon Sep 17 00:00:00 2001 From: tooomm Date: Sun, 12 Apr 2026 12:32:48 +0200 Subject: [PATCH 2/9] oversight --- .github/workflows/desktop-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index c05bf0c39..93b75feb1 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -410,7 +410,7 @@ jobs: path: ${{ github.workspace }}/Qt key: thin-qt-macos-${{ matrix.soc }}-${{ steps.resolve_qt_version.outputs.version }} - - name: Install Qt ${{ env.QT_VERSION }} (Windows) + - name: Install Qt ${{ steps.resolve_qt_version.outputs.version }} (Windows) if: matrix.os == 'Windows' uses: jurplel/install-qt-action@v4 with: From 48760679461c3da7f702cdd702a9065e47575040 Mon Sep 17 00:00:00 2001 From: tooomm Date: Sun, 12 Apr 2026 13:46:41 +0200 Subject: [PATCH 3/9] fix caps --- .ci/compile.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/compile.sh b/.ci/compile.sh index 7ebdd6e4e..a86b5ee58 100755 --- a/.ci/compile.sh +++ b/.ci/compile.sh @@ -272,7 +272,7 @@ echo "::endgroup::" if [[ $USE_CCACHE ]]; then if [[ $CCACHE_EVICTION_AGE ]]; then - echo "::group::evict ccache files older than $CCACHE_EVICTION_AGE" + echo "::group::Evict ccache files older than $CCACHE_EVICTION_AGE" ccache --evict-older-than "$CCACHE_EVICTION_AGE" echo "::endgroup::" fi From 271358790ac86bed16e00ff63d54d6d20a761f8b Mon Sep 17 00:00:00 2001 From: tooomm Date: Sun, 12 Apr 2026 14:03:33 +0200 Subject: [PATCH 4/9] cleanup --- .github/workflows/desktop-build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index 93b75feb1..3ea56c272 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -350,7 +350,6 @@ jobs: - name: Add msbuild to PATH if: matrix.os == 'Windows' - id: add-msbuild uses: microsoft/setup-msbuild@v3 with: msbuild-architecture: x64 From c3c8a459ac853340fb7eaa9aa4e25bc77706a422 Mon Sep 17 00:00:00 2001 From: tooomm Date: Sun, 12 Apr 2026 14:13:08 +0200 Subject: [PATCH 5/9] Do check runner OS rather than relying on custom matrix for OS-specific steps --- .github/workflows/desktop-build.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index 3ea56c272..f3d175a7e 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -349,7 +349,7 @@ jobs: submodules: recursive - name: Add msbuild to PATH - if: matrix.os == 'Windows' + if: runner.os == 'Windows' uses: microsoft/setup-msbuild@v3 with: msbuild-architecture: x64 @@ -379,7 +379,7 @@ jobs: run: .ci/resolve_latest_aqt_qt_version.sh "${{ env.QT_VERSION }}" - name: Restore thin Qt ${{ steps.resolve_qt_version.outputs.version }} libraries (${{ matrix.soc }} macOS) - if: matrix.os == 'macOS' + if: runner.os == 'macOS' id: restore_qt uses: actions/cache/restore@v5 with: @@ -389,7 +389,7 @@ jobs: # Using jurplel/install-qt-action to install Qt without using brew # qt build using vcpkg either just fails or takes too long to build - name: Install fat Qt ${{ steps.resolve_qt_version.outputs.version }} (${{ matrix.soc }} macOS) - if: matrix.os == 'macOS' && steps.restore_qt.outputs.cache-hit != 'true' + if: runner.os == 'macOS' && steps.restore_qt.outputs.cache-hit != 'true' uses: jurplel/install-qt-action@v4 with: version: ${{ steps.resolve_qt_version.outputs.version }} @@ -399,18 +399,18 @@ jobs: dir: ${{github.workspace}} - name: Thin Qt libraries (${{ matrix.soc }} macOS) - if: matrix.os == 'macOS' && steps.restore_qt.outputs.cache-hit != 'true' + if: runner.os == 'macOS' && steps.restore_qt.outputs.cache-hit != 'true' run: .ci/thin_macos_qtlib.sh - name: Cache thin Qt libraries (${{ matrix.soc }} macOS) - if: matrix.os == 'macOS' && steps.restore_qt.outputs.cache-hit != 'true' + if: runner.os == 'macOS' && steps.restore_qt.outputs.cache-hit != 'true' uses: actions/cache/save@v5 with: path: ${{ github.workspace }}/Qt key: thin-qt-macos-${{ matrix.soc }}-${{ steps.resolve_qt_version.outputs.version }} - name: Install Qt ${{ steps.resolve_qt_version.outputs.version }} (Windows) - if: matrix.os == 'Windows' + if: runner.os == 'Windows' uses: jurplel/install-qt-action@v4 with: # Qt 6.11.0 only works with aqtinstall directly from git until aqtinstall 3.4 is released @@ -421,7 +421,7 @@ jobs: cache: true - name: Install NSIS - if: matrix.os == 'Windows' + if: runner.os == 'Windows' shell: bash run: choco install nsis @@ -472,7 +472,7 @@ jobs: key: ${{ steps.ccache_restore.outputs.cache-primary-key }} - name: Sign app bundle - if: matrix.os == 'macOS' && matrix.make_package && needs.configure.outputs.tag != null + if: runner.os == 'macOS' && matrix.make_package && needs.configure.outputs.tag != null id: sign_macos env: MACOS_CERTIFICATE_NAME: ${{ secrets.PROD_MACOS_CERTIFICATE_NAME }} @@ -526,7 +526,7 @@ jobs: if-no-files-found: error - name: Upload PDBs (Program Databases) - if: matrix.os == 'Windows' && github.ref_type != 'tag' + if: runner.os == 'Windows' && github.ref_type != 'tag' uses: actions/upload-artifact@v7 with: name: ${{steps.build.outputs.name}}-PDBs From 5a3b31acca670205073612bfd836ba9a9aaaaab8 Mon Sep 17 00:00:00 2001 From: tooomm Date: Sun, 12 Apr 2026 14:17:53 +0200 Subject: [PATCH 6/9] oversight --- .github/workflows/desktop-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index f3d175a7e..2fffb7f20 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -355,7 +355,7 @@ jobs: msbuild-architecture: x64 - name: Setup ccache - if: matrix.use_ccache == 1 && matrix.os == 'macOS' + if: matrix.use_ccache == 1 && runner.os == 'macOS' run: brew install ccache - name: Restore compiler cache (ccache) From 107665c6be7a078f265203cf84841ce2f746212b Mon Sep 17 00:00:00 2001 From: tooomm Date: Mon, 20 Apr 2026 22:15:02 +0200 Subject: [PATCH 7/9] Update desktop-build.yml --- .github/workflows/desktop-build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index 2fffb7f20..861723cdd 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -339,7 +339,7 @@ jobs: # https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy CCACHE_SIZE: 550M CCACHE_EVICTION_AGE: 7d - QT_VERSION: 6.11.* + QT_VERSION: 6.11 QT_MODULES: qtimageformats qtmultimedia qtwebsockets steps: @@ -372,8 +372,8 @@ jobs: - name: Install aqtinstall run: pipx install aqtinstall - # Resolve given wildcard versions (e.g. Qt 6.6.*) to latest version via aqtinstall to avoid stale caches on new releases - - name: Resolve latest Qt patch version + # Resolve given version (e.g. Qt 6.8, Qt 6) to latest in range via aqtinstall to avoid stale caches on new releases + - name: Resolve latest version for Qt ${{ env.QT_VERSION }} id: resolve_qt_version shell: bash run: .ci/resolve_latest_aqt_qt_version.sh "${{ env.QT_VERSION }}" From 11d0f12e1f69dc9d30d76b70d85c7b8029786129 Mon Sep 17 00:00:00 2001 From: tooomm Date: Mon, 20 Apr 2026 22:19:27 +0200 Subject: [PATCH 8/9] Update desktop-build.yml --- .github/workflows/desktop-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index 861723cdd..47f1fdf18 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -339,7 +339,7 @@ jobs: # https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy CCACHE_SIZE: 550M CCACHE_EVICTION_AGE: 7d - QT_VERSION: 6.11 + QT_VERSION: 6.10 QT_MODULES: qtimageformats qtmultimedia qtwebsockets steps: From 1b14f140d6228f11fe371f69b9888c473305356a Mon Sep 17 00:00:00 2001 From: tooomm Date: Mon, 20 Apr 2026 22:30:55 +0200 Subject: [PATCH 9/9] Update desktop-build.yml --- .github/workflows/desktop-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index 47f1fdf18..26e061e71 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -4,7 +4,7 @@ permissions: contents: write id-token: write attestations: write - actions: write # needed for ccache action to be able to delete gha caches + actions: write # needed for ccache action to be able to delete gha caches on: push: @@ -339,7 +339,7 @@ jobs: # https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy CCACHE_SIZE: 550M CCACHE_EVICTION_AGE: 7d - QT_VERSION: 6.10 + QT_VERSION: "6.10" QT_MODULES: qtimageformats qtmultimedia qtwebsockets steps: