Skip to content

fix(ci): limit tests to 60 minutes max#1557

Open
paul-nechifor wants to merge 1 commit intodevfrom
paul/fix/job-limit
Open

fix(ci): limit tests to 60 minutes max#1557
paul-nechifor wants to merge 1 commit intodevfrom
paul/fix/job-limit

Conversation

@paul-nechifor
Copy link
Contributor

Problem

Some runs get stuck. This has been running for 5+ hours: https://github.com/dimensionalOS/dimos/actions/runs/23092926633/job/67080566689?pr=1536

Closes DIM-XXX

Solution

  • Limit to 60 minutes

Breaking Changes

How to Test

Contributor License Agreement

  • I have read and approved the CLA.

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Mar 14, 2026

Greptile Summary

Adds a 60-minute timeout to the reusable tests.yml workflow's run-tests job. This prevents CI runs from hanging indefinitely on self-hosted runners, as observed in a 5+ hour stuck run. The timeout applies to both callers in docker.yml: the pytest suite and the mypy check.

  • Adds timeout-minutes: 60 at the job level in .github/workflows/tests.yml
  • No issues found — this is a minimal, well-targeted fix for stuck CI runs

Confidence Score: 5/5

  • This PR is safe to merge — it adds a single, well-understood GitHub Actions property with no impact on code or test behavior.
  • The change is a one-line addition of timeout-minutes: 60 at the correct indentation level in the workflow YAML. It uses a standard GitHub Actions feature, affects only CI infrastructure (not application code), and directly addresses the documented problem of stuck runs. No logic, syntax, or security concerns.
  • No files require special attention.

Important Files Changed

Filename Overview
.github/workflows/tests.yml Adds timeout-minutes: 60 to the run-tests job to prevent stuck CI runs from consuming resources indefinitely. Correct placement and value.

Sequence Diagram

sequenceDiagram
    participant D as docker.yml
    participant T as tests.yml (run-tests)
    participant R as Self-hosted Runner

    D->>T: workflow_call (pytest or mypy)
    T->>R: Start job (timeout: 60min)
    alt Job completes in time
        R-->>T: Success / Failure
        T-->>D: Result
    else Job exceeds 60 minutes
        R-->>T: Cancelled (timeout)
        T-->>D: Failure
    end
Loading

Last reviewed commit: 46eddc0

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