diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index 9f2d679fa..9a6614654 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -33,6 +33,11 @@ on: - 'CMakeLists.txt' - 'vcpkg.json' - 'vcpkg' # needed to match submodule bumps (gitlink) + # The legs the pull-request matrix leaves out run here instead, so the legacy distros and + # the slow macOS runner stay covered without gating a pull request on them. Tags still + # build every leg, because a tag is what ships. + schedule: + - cron: '23 3 * * *' # Cancel earlier, unfinished runs of this workflow on the same branch (unless on tag --> release) concurrency: @@ -152,6 +157,7 @@ jobs: - distro: Debian version: 12 + nightly: yes # previous stable, still covered by the nightly package: DEB test: skip # Running tests on all distros is superfluous @@ -163,6 +169,7 @@ jobs: - distro: Fedora version: 43 + nightly: yes # previous release, still covered by the nightly package: RPM test: skip # Running tests on all distros is superfluous @@ -179,6 +186,7 @@ jobs: - distro: Ubuntu version: 24.04 + nightly: yes # previous LTS, still covered by the nightly package: DEB test: skip # Running tests on all distros is superfluous @@ -219,6 +227,9 @@ jobs: name: ${{ matrix.distro }} ${{ matrix.version }}${{ matrix.variant && format(' {0}', matrix.variant) || '' }} needs: configure + # A leg marked nightly runs in the nightly and on tags, never on a pull request or a + # merge, so nothing that reviews a change waits for a distro nobody is changing for. + if: matrix.nightly != 'yes' || github.event_name == 'schedule' || github.ref_type == 'tag' runs-on: ubuntu-latest # https://github.com/actions/runner-images continue-on-error: ${{ matrix.allow-failure == 'yes' }} timeout-minutes: 70 @@ -453,6 +464,7 @@ jobs: target: 13 # EOL 2025-09-15 runner: macos-15-intel # https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md # macos-26-intel is very slow and fails in CPack during DMG config if not increasing Finder timeout + nightly: yes # EOL target on the slowest runner: nightly and tags only ccache_eviction_age: 7d cmake_generator: Ninja @@ -543,6 +555,7 @@ jobs: name: ${{ matrix.os }} ${{ matrix.target }}${{ matrix.soc == 'Intel' && ' Intel' || '' }}${{ matrix.type == 'Debug' && ' Debug' || '' }} needs: [configure, vcpkg-baseline] + if: matrix.nightly != 'yes' || github.event_name == 'schedule' || github.ref_type == 'tag' runs-on: ${{ matrix.runner }} timeout-minutes: 100 env: