Skip to content

feat(checkout): vendor actions/checkout v6.0.2 with timeout-minutes input#128

Closed
tenstorrent-github-bot wants to merge 1 commit into
mainfrom
brain/checkout-with-timeout
Closed

feat(checkout): vendor actions/checkout v6.0.2 with timeout-minutes input#128
tenstorrent-github-bot wants to merge 1 commit into
mainfrom
brain/checkout-with-timeout

Conversation

@tenstorrent-github-bot

Copy link
Copy Markdown

Summary

Vendors actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd (v6.0.2) — the exact commit tt-metal is pinned to — into checkout/ and adds a timeout-minutes input that kills any git subprocess exceeding the limit.

Motivation

Git operations (especially fetch on large monorepos like tt-metal) can hang indefinitely when network issues occur mid-transfer. GitHub Actions' job-level timeout-minutes is too coarse — it kills the whole job with no context. A per-step git timeout lets us fail fast with a clear message and retry.

Changes

  • checkout/action.yml — new timeout-minutes input, default 20
  • checkout/src/git-source-settings.tstimeoutMs: number field on IGitSourceSettings
  • checkout/src/input-helper.ts — parse timeout-minutes, convert to ms, validate > 0
  • checkout/src/git-command-manager.ts — store timeoutMs on GitCommandManager; wrap every exec.exec() in Promise.race() against a timeout rejection; propagate through createCommandManager()
  • checkout/src/git-source-provider.ts — pass settings.timeoutMs to createCommandManager()
  • checkout/dist/index.js — rebuilt

Usage

- uses: tenstorrent/tt-github-actions/checkout@<ref>
  with:
    timeout-minutes: 30   # optional, default is 20

Base commit

actions/checkout upstream: de0fac2e4500dabe0009e67214ff5f5447ce83dd (v6.0.2)

🤖 Generated with Claude Code

Vendors actions/checkout@de0fac2 (v6.0.2)
into checkout/ and adds a `timeout-minutes` input (default: 20) that
kills any git subprocess that exceeds the limit.

Changes:
- action.yml: add timeout-minutes input (default '20')
- src/git-source-settings.ts: add timeoutMs field to IGitSourceSettings
- src/input-helper.ts: parse timeout-minutes → timeoutMs (ms)
- src/git-command-manager.ts: store timeoutMs on GitCommandManager,
  wrap exec.exec() in Promise.race() against a timeout rejection,
  propagate through createCommandManager()
- src/git-source-provider.ts: pass settings.timeoutMs to createCommandManager()
- dist/index.js: rebuilt

Usage:
  - uses: tenstorrent/tt-github-actions/checkout@<ref>
    with:
      timeout-minutes: 30   # override if large repos need more time

Co-Authored-By: BrAIn <brain@tenstorrent.com>
@tenstorrent-github-bot tenstorrent-github-bot requested a review from a team as a code owner May 31, 2026 03:22
@tenstorrent-github-bot

Copy link
Copy Markdown
Author

Closing in favour of a cleaner redo — two-commit structure, correct action path.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant