Recommended Free Tools
Set jobs.<job_id>.timeout-minutes to cap how long an individual GitHub Actions job can run. GitHub automatically cancels the job when it reaches that limit. There is no single documented workflow.timeout-minutes setting: a job timeout, GitHub’s platform execution ceilings, whole-run limits, concurrency controls, and billing rules address different things.
Set a timeout for each job you want to bound
Add timeout-minutes under the job’s identifier in your workflow YAML:
jobs:
tests:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v6
- run: ./run-tests.sh
GitHub defines jobs.<job_id>.timeout-minutes as “the maximum number of minutes to let a job run before GitHub automatically cancels it.” Its documented default is 360 minutes. See GitHub’s workflow syntax reference.
The example’s 20 minutes is illustrative, not a recommended value. Use successful run times as a starting point, then leave headroom for normal variation, setup, and slower runner conditions. Apply the setting to every job that needs a bound; otherwise, a long-running job can remain at the documented default.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
#1 Best Overall
Understand job timeouts versus GitHub’s execution ceilings
An author-set timeout can make a job stop sooner, but it cannot extend the maximum execution time allowed by GitHub. The limits documented for GitHub Actions state that a job can run for up to 6 hours on a GitHub-hosted runner or up to 5 days on a self-hosted runner. GitHub also limits a workflow run to 35 days, including execution, time waiting, and environment approval. These are platform ceilings, not substitutes for setting practical job timeouts; GitHub notes that limits may change. Check the current Actions limits documentation for applicable details.
The distinction matters when diagnosing a workflow that appears stuck: a job timeout governs that job’s execution, while the whole-run limit also accounts for waiting and approvals. Reaching a job timeout triggers automatic cancellation; it is not a guarantee of graceful shutdown or cleanup of every external process.
Use concurrency to control overlapping runs
A job timeout caps the duration of one job, but it does not stop multiple workflow runs from starting or running at the same time. GitHub Actions permits concurrent jobs and runs by default. If the problem is duplicate or outdated work rather than one job running too long, concurrency is a separate control. Read GitHub’s concurrency documentation before choosing a group and cancellation policy.
By default, a concurrency group can have one running run or job and one pending run. When another run becomes pending in that group, it cancels the previous pending run unless queueing is configured. That behavior can discard pending work, so choose the group and settings to match whether you want to serialize work or cancel superseded runs.
Timeouts do not by themselves cap your bill
For public repositories, standard GitHub-hosted runner usage is free; self-hosted runner usage is also free. GitHub-hosted jobs in private repositories consume plan minutes and may incur charges after included allowances are used. The applicable plan, runner type, account settings, and minute multipliers affect billing; storage and repeated or parallel runs also matter. Consult GitHub’s Actions billing documentation for current terms.
A timeout limits the duration of a single job, not total monthly usage: multiple jobs can run in parallel, and workflows can run repeatedly. It is one guardrail, not a spending limit.
Rank #4
Check job duration and billed usage separately
Open a workflow run and inspect the job execution time in the run interface, then compare usage with the account’s billing information. For private-repository hosted jobs, displayed billable minutes are rounded up to a whole minute and do not include runner-minute multipliers. The usage documentation explains what the displayed metrics represent. For reusable workflows, billing is associated with the caller workflow, and runner assignment is evaluated from the caller’s context; see GitHub’s reusable-workflow runner guidance.
Quick Recap
Best Value
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →




