Skip to content

ci: add timeout-minutes to release jobs - #1070

Open
devsy-app[bot] wants to merge 1 commit into
mainfrom
ci-optimizer/release-timeout-minutes
Open

ci: add timeout-minutes to release jobs#1070
devsy-app[bot] wants to merge 1 commit into
mainfrom
ci-optimizer/release-timeout-minutes

Conversation

@devsy-app

@devsy-app devsy-app Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds timeout-minutes guards to all 6 jobs in .github/workflows/release.yml. None of these jobs previously had a timeout, so a hung build/publish step could consume the full 6-hour GitHub Actions job cap before being killed. Each value is set with headroom above observed run durations.

Runs inspected

Inspected recent Release workflow runs (workflow_dispatch / release triggered) via gh run list / gh run view. Observed job durations: the longest job (build-desktop, macOS signing) ran ~19m20s; the remaining jobs ran well under 10 minutes. No job exceeded ~20 minutes, so the chosen values provide ample headroom.

Problem

release.yml defines 6 jobs (build-cli, build-desktop, deploy-update-metadata, build-flatpak, publish-homebrew, prerelease) with no timeout-minutes set. A stuck step (e.g. a hung macOS notarization, a stalled git push, a wedged flatpak build) would run until GitHub's default 360-minute job limit, wasting release CI minutes and delaying the release pipeline.

Change

Added timeout-minutes to each job (placed immediately after runs-on:, matching the convention already established in the repo's other workflows):

Job timeout-minutes Rationale
build-cli 45 matrix over linux/macos/windows; go build + cross-compile
build-desktop 45 electron-builder + macOS signing/notarization (slowest observed)
deploy-update-metadata 15 metadata deploy + git push
build-flatpak 30 flatpak build in privileged container
publish-homebrew 15 formula/cask publish
prerelease 5 release notes publish only

No behavioral change beyond the timeout guard; no new dependencies; no trigger/path changes.

Validation

  • Re-read release.yml end-to-end to confirm each timeout-minutes is placed directly after runs-on: and indentation matches surrounding keys.
  • python3 -c "import yaml; yaml.safe_load(open('.github/workflows/release.yml'))" â�� YAML OK
  • act --list -W .github/workflows/release.yml â�� enumerates all 6 jobs correctly (act/docker available).
  • Formatting gate: task cli:format clean; task cli:lint:ci â�� 0 issues; task cli:test â�� pass (only the known pre-existing pkg/git TestRepoClone* failure on origin/main, unrelated to this YAML-only change â�� git-lfs absent in sandbox).

This PR was created by an AI agent as part of an automated daily CI optimization job.

## Summary

Adds `timeout-minutes` guards to all 6 jobs in `.github/workflows/release.yml`. None of these jobs previously had a timeout, so a hung build/publish step could consume the full 6-hour GitHub Actions job cap before being killed. Each value is set with headroom above observed run durations.

## Runs inspected

Inspected recent **Release** workflow runs (workflow_dispatch / release triggered) via `gh run list` / `gh run view`. Observed job durations: the longest job (`build-desktop`, macOS signing) ran ~19m20s; the remaining jobs ran well under 10 minutes. No job exceeded ~20 minutes, so the chosen values provide ample headroom.

## Problem

`release.yml` defines 6 jobs (`build-cli`, `build-desktop`, `deploy-update-metadata`, `build-flatpak`, `publish-homebrew`, `prerelease`) with no `timeout-minutes` set. A stuck step (e.g. a hung macOS notarization, a stalled `git push`, a wedged flatpak build) would run until GitHub's default 360-minute job limit, wasting release CI minutes and delaying the release pipeline.

## Change

Added `timeout-minutes` to each job (placed immediately after `runs-on:`, matching the convention already established in the repo's other workflows):

| Job | timeout-minutes | Rationale |
|-----|-----------------|-----------|
| `build-cli` | 45 | matrix over linux/macos/windows; go build + cross-compile |
| `build-desktop` | 45 | electron-builder + macOS signing/notarization (slowest observed) |
| `deploy-update-metadata` | 15 | metadata deploy + git push |
| `build-flatpak` | 30 | flatpak build in privileged container |
| `publish-homebrew` | 15 | formula/cask publish |
| `prerelease` | 5 | release notes publish only |

No behavioral change beyond the timeout guard; no new dependencies; no trigger/path changes.

## Validation

- Re-read `release.yml` end-to-end to confirm each `timeout-minutes` is placed directly after `runs-on:` and indentation matches surrounding keys.
- `python3 -c "import yaml; yaml.safe_load(open('.github/workflows/release.yml'))"` � **YAML OK**
- `act --list -W .github/workflows/release.yml` � enumerates all 6 jobs correctly (act/docker available).
- Formatting gate: `task cli:format` clean; `task cli:lint:ci` � 0 issues; `task cli:test` � pass (only the known pre-existing `pkg/git` `TestRepoClone*` failure on origin/main, unrelated to this YAML-only change � git-lfs absent in sandbox).

This PR was created by an AI agent as part of an automated daily CI optimization job.
@netlify

netlify Bot commented Aug 16, 2026

Copy link
Copy Markdown

Deploy Preview for devsydev canceled.

Name Link
🔨 Latest commit 5af8911
🔍 Latest deploy log https://app.netlify.com/projects/devsydev/deploys/6a818183e5ddce0008658d32

@netlify

netlify Bot commented Aug 16, 2026

Copy link
Copy Markdown

Deploy Preview for images-devsy-sh canceled.

Name Link
🔨 Latest commit 5af8911
🔍 Latest deploy log https://app.netlify.com/projects/images-devsy-sh/deploys/6a818183e543e90008741faf

@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

AI Reviewer: run a review on demand. To trigger the first review automatically, go to your organization or repository integration settings. AI can make mistakes. Always validate suggestions.

Run reviewer

TIP This summary will be updated as you push new changes.

@skevetter
skevetter marked this pull request as ready for review August 17, 2026 07:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants