Use long-lived runners for TestFlight waits
Some checks failed
Build Rust / Cargo Test (push) Successful in 4m4s
Build Site / Next.js Build (push) Failing after 4s
Lint Governance / BEP Metadata (push) Successful in 1s
Cache: Publish Nix / Publish Nix Cache (push) Successful in 3m13s

This commit is contained in:
Conrad Kramer 2026-06-07 19:49:22 -07:00
parent 99499b78f9
commit feb64febc4
5 changed files with 23 additions and 11 deletions

View file

@ -407,7 +407,7 @@ jobs:
- prepare
- sign-apple
if: ${{ github.event.inputs.upload_app_store == 'true' }}
runs-on: namespace-profile-macos-large-apple-v2
runs-on: namespace-profile-macos-large-testflight
steps:
- name: Checkout
uses: https://code.forgejo.org/actions/checkout@v4

View file

@ -36,7 +36,7 @@ env:
jobs:
distribute-ios-testflight:
name: Distribute (TestFlight iOS Testers)
runs-on: namespace-profile-linux-medium
runs-on: namespace-profile-linux-testflight
steps:
- name: Checkout
uses: https://code.forgejo.org/actions/checkout@v4

View file

@ -223,7 +223,7 @@ jobs:
name: Release (TestFlight iOS Testers)
needs: upload-app-store
if: ${{ inputs.upload_app_store == 'true' }}
runs-on: namespace-profile-linux-medium
runs-on: namespace-profile-linux-testflight
steps:
- name: Checkout
uses: https://code.forgejo.org/actions/checkout@v4
@ -261,7 +261,7 @@ jobs:
distribute-ios-testflight:
name: Distribute (TestFlight iOS Testers)
if: ${{ inputs.upload_app_store != 'true' && inputs.distribute_testflight == 'true' }}
runs-on: namespace-profile-linux-medium
runs-on: namespace-profile-linux-testflight
steps:
- name: Checkout
uses: https://code.forgejo.org/actions/checkout@v4

View file

@ -195,12 +195,16 @@ The same change also makes the forge itself the release authority: release tags
`apple-distribute-testers` and `publish-store-uploads` wait up to 7200
seconds by default and allow Forgejo variable
`TESTFLIGHT_WAIT_PROCESSING_TIMEOUT_SECONDS` to tune that ceiling without a
repo change. `publish-store-uploads` has a separate no-`needs`
`distribute-ios-testflight` retry job for `distribute_testflight=true` and
`upload_app_store=false`, so skipped upload/signing jobs cannot suppress
distribution of an already-uploaded build. `distribute-testflight` is the
narrower one-job retry workflow when only App Store Connect processing and
tester assignment need to be retried.
repo change. TestFlight wait jobs must use `namespace-profile-linux-testflight`
or `namespace-profile-macos-large-testflight`; the generic Linux and Apple
macOS profiles expire before the 7200-second processing window. The
autoscaler-to-dispatcher timeout must stay above those runner TTLs because
dispatch requests block until the one-job runner exits. `publish-store-uploads`
has a separate no-`needs` `distribute-ios-testflight` retry job for
`distribute_testflight=true` and `upload_app_store=false`, so skipped
upload/signing jobs cannot suppress distribution of an already-uploaded build.
`distribute-testflight` is the narrower one-job retry workflow when only App
Store Connect processing and tester assignment need to be retried.
- Add `infra/releases` as the OpenTofu boundary for the GCS release and package repository backup buckets. Garage is the required S3-compatible primary distribution target after host bootstrap. `infra/identity` remains the boundary for Google KMS signing keys, the Authentik WIF pool/provider, and the runner service account.
- Serve `releases.burrow.net` and `packages.burrow.net` from the forge Caddy
edge as stable Burrow domains backed by the GCS release and package buckets.

View file

@ -2,7 +2,7 @@ listen: "127.0.0.1:8090"
dispatcher:
url: "http://127.0.0.1:8080"
timeout: "2h"
timeout: "3h"
instances:
- name: burrow
@ -30,6 +30,10 @@ instances:
min_idle: 0
ttl: "30m"
machine_type: "8x16"
- labels: ["namespace-profile-linux-testflight"]
min_idle: 0
ttl: "150m"
machine_type: "8x16"
- labels: ["namespace-profile-macos-large"]
min_idle: 0
ttl: "60m"
@ -38,6 +42,10 @@ instances:
min_idle: 0
ttl: "90m"
machine_type: "12x28"
- labels: ["namespace-profile-macos-large-testflight"]
min_idle: 0
ttl: "150m"
machine_type: "12x28"
- labels: ["namespace-profile-windows-large"]
min_idle: 0
ttl: "45m"