Skip to content

Add per-job timeouts to all CI workflows#195

Open
julek-wolfssl wants to merge 1 commit into
wolfSSL:masterfrom
julek-wolfssl:ci-workflow-timeouts
Open

Add per-job timeouts to all CI workflows#195
julek-wolfssl wants to merge 1 commit into
wolfSSL:masterfrom
julek-wolfssl:ci-workflow-timeouts

Conversation

@julek-wolfssl

Copy link
Copy Markdown
Member

Summary

Jobs default to GitHub's 6 hour timeout, so a hung apt step recently burned ~6 hours before the run failed. This adds explicit timeout-minutes to every job so hangs fail fast.

Tiering

Timeouts are tiered by job weight:

  • 15 min — lint/metadata
  • 30 min — standard builds
  • 60 min — matrix analysis (clang-tidy, scan-build, sanitizers) and NSS tests
  • 90 min — QEMU-emulated Alpine builds

unit-test.yml calls reusable workflows, which cannot set timeout-minutes on the caller, so its timeout is set in build-workflow.yml and wolfssl-v5.6.6-build-workflow.yml. Pre-existing timeouts are unchanged.

Jobs default to GitHub's 6 hour timeout, so a hung apt step recently
burned ~6 hours before the run failed. Add explicit timeout-minutes to
every job so hangs fail fast.

Timeouts are tiered by job weight: 15 min for lint/metadata, 30 min for
standard builds, 60 min for matrix analysis (clang-tidy, scan-build,
sanitizers) and NSS tests, 90 min for QEMU-emulated Alpine builds.
unit-test.yml calls reusable workflows, which cannot set timeout-minutes
on the caller, so its timeout is set in build-workflow.yml and
wolfssl-v5.6.6-build-workflow.yml. Pre-existing timeouts are unchanged.
Copilot AI review requested due to automatic review settings June 19, 2026 07:39
@julek-wolfssl julek-wolfssl self-assigned this Jun 19, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds explicit per-job timeout-minutes settings across CI workflows to avoid hung jobs consuming GitHub’s default 6-hour timeout and to fail faster when steps stall.

Changes:

  • Added 15/30/60/90-minute job timeouts based on job “weight” (lint/metadata, standard builds, analysis/NSS, QEMU Alpine).
  • Added timeouts inside reusable workflows (build-workflow.yml, wolfssl-v5.6.6-build-workflow.yml) so callers like unit-test.yml inherit them appropriately.
  • Left pre-existing timeouts unchanged (e.g., existing short timeouts in tpm2-store-test.yml build jobs).

Reviewed changes

Copilot reviewed 21 out of 21 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
.github/workflows/wolfssl-v5.6.6-build-workflow.yml Adds a 30-minute timeout to the reusable wolfSSL v5.6.6 build job.
.github/workflows/wolfssl-master-compatibility.yml Adds a 30-minute timeout to the wolfSSL master compatibility job.
.github/workflows/tpm2-store-test.yml Adds timeouts to metadata jobs (15 min) and the main test job (30 min).
.github/workflows/storage-upgrade-test.yml Adds a 30-minute timeout to the storage upgrade matrix job.
.github/workflows/storage-upgrade-test-tpm.yml Adds a 30-minute timeout to the TPM storage upgrade matrix job.
.github/workflows/scan-build.yml Adds a 60-minute timeout to the scan-build matrix analysis job.
.github/workflows/sanitizer-tests.yml Adds a 60-minute timeout to the sanitizer matrix job.
.github/workflows/nss-ssltap-test.yml Adds a 60-minute timeout to the NSS SSLTap test job.
.github/workflows/nss-pk12util-test.yml Adds a 60-minute timeout to the NSS pk12util test job.
.github/workflows/nss-pk12util-debian-test.yml Adds a 60-minute timeout to the Debian-container NSS pk12util job.
.github/workflows/nss-pdfsig-test.yml Adds a 60-minute timeout to the NSS PDF signing test job.
.github/workflows/nss-curl-test.yml Adds a 60-minute timeout to the NSS curl test job.
.github/workflows/nss-cmsutil-test.yml Adds a 60-minute timeout to the NSS cmsutil test job.
.github/workflows/firefox.yml Adds a 30-minute timeout to the Firefox container-based test job.
.github/workflows/empty-pin-store-test.yml Adds a 30-minute timeout to the empty PIN store test job.
.github/workflows/debian-package-test.yml Adds a 30-minute timeout to the Debian packaging test job.
.github/workflows/codespell.yml Adds a 15-minute timeout to the codespell job.
.github/workflows/cmake.yml Adds a 30-minute timeout to the CMake build job.
.github/workflows/clang-tidy.yml Adds a 60-minute timeout to the clang-tidy matrix analysis job.
.github/workflows/build-workflow.yml Adds a 30-minute timeout to the main reusable build workflow job.
.github/workflows/alpine-architecture-tests.yml Adds a 90-minute timeout to the QEMU/emulated Alpine architecture matrix job.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/firefox.yml
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.

3 participants