mirror of
https://github.com/Toastconcern/FrameStudio.git
synced 2026-10-28 20:03:07 +01:00
ci: publish releases without waiting on the slow macOS runner
The release job depended on every build job, including the macOS Intel runner, which can sit in GitHub's hosted queue for hours. Because a new push cancels the in-progress run (concurrency: cancel-in-progress) and a cancelled run skips Publish (if: !cancelled()), no run ever lived long enough to create the "latest" release. Drop macOS from the release job's needs so it publishes once Linux, Windows and the installer are done; both Mac builds still run and are attached whenever they finish in time. Also add timeout-minutes to every job so nothing can hang on GitHub's 6-hour default again. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1 parent
eb83deaeaa
commit
dc9cfd9838
1 file changed
+10
-2
@@ -25,6 +25,7 @@ jobs:
|
||||
- { arch: x86, runner: ubuntu-24.04, extra: "gcc-multilib g++-multilib" }
|
||||
- { arch: arm64, runner: ubuntu-24.04-arm, extra: "" }
|
||||
runs-on: ${{ matrix.runner }}
|
||||
timeout-minutes: 45
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Tools and X11 headers
|
||||
@@ -45,6 +46,7 @@ jobs:
|
||||
matrix:
|
||||
arch: [x64, x86, arm64]
|
||||
runs-on: windows-latest
|
||||
timeout-minutes: 45
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Build (MSVC)
|
||||
@@ -75,6 +77,7 @@ jobs:
|
||||
- { arch: arm64, runner: macos-14 }
|
||||
- { arch: x64, runner: macos-13 }
|
||||
runs-on: ${{ matrix.runner }}
|
||||
timeout-minutes: 45
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Tools and MoltenVK (Vulkan on Metal, bundled into the app)
|
||||
@@ -89,6 +92,7 @@ jobs:
|
||||
frame-home:
|
||||
name: Frame Home installer
|
||||
runs-on: ubuntu-24.04
|
||||
timeout-minutes: 30
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Package
|
||||
@@ -100,10 +104,14 @@ jobs:
|
||||
|
||||
release:
|
||||
name: Publish
|
||||
# (also when a platform failed: "latest" gets every build that worked; a version release needs them all)
|
||||
# "latest" gets every build that finished (a failed or still-slow platform just isn't in it); a version release
|
||||
# needs them all. We don't wait on macOS: its runners can sit in GitHub's queue for hours, and since a push
|
||||
# cancels the previous run, waiting meant no run ever reached this job. Both Mac builds still upload and are
|
||||
# attached whenever they finish in time.
|
||||
if: ${{ !cancelled() && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main') }}
|
||||
needs: [linux, windows, macos, frame-home]
|
||||
needs: [linux, windows, frame-home]
|
||||
runs-on: ubuntu-24.04
|
||||
timeout-minutes: 20
|
||||
permissions:
|
||||
contents: write
|
||||
env:
|
||||
|
||||
Reference in new issue
Block a user