ci: add timeout-minutes to all jobs in functions.yaml#3535
ci: add timeout-minutes to all jobs in functions.yaml#3535Ankitsinghsisodya wants to merge 1 commit intoknative:mainfrom
Conversation
Without explicit timeouts, GitHub Actions defaults to 6 hours per job. Add job-level timeouts based on expected runtimes to prevent hung jobs from consuming CI minutes unnecessarily: - precheck: 15m - test-unit: 30m - test-templates: 60m - test-integration: 120m - test-e2e: 120m - test-e2e-podman: 120m - test-e2e-runtimes: 90m - test-e2e-config-ci: 120m - build: 30m - publish-utils-image: 30m - publish-image: 30m Fixes knative#3530
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: Ankitsinghsisodya The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
|
|
Hi @Ankitsinghsisodya. Thanks for your PR. I'm waiting for a knative member to verify that this patch is reasonable to test. If it is, they should reply with Regular contributors should join the org to skip this step. Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
There was a problem hiding this comment.
Pull request overview
Adds explicit GitHub Actions job timeouts to .github/workflows/functions.yaml to prevent hung/stuck CI jobs from consuming runner minutes up to the default 6-hour limit.
Changes:
- Set
timeout-minutesfor all jobs infunctions.yaml(precheck, tests, build, publish). - Establish conservative upper bounds per job category (unit/templates vs. integration/e2e vs. build/publish).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| @@ -248,6 +253,7 @@ jobs: | |||
| name: E2E - Podman | |||
| needs: precheck | |||
| runs-on: ubuntu-latest | |||
There was a problem hiding this comment.
test-e2e-podman defines a strategy.matrix.os, but runs-on is hardcoded to ubuntu-latest, so both matrix entries run on the same runner label. This likely defeats the intent of testing on ARM (ubuntu-24.04-arm) and also duplicates CI work. Consider changing runs-on to use matrix.os (or removing the matrix if only one runner is intended).
| runs-on: ubuntu-latest | |
| runs-on: ${{ matrix.os }} |
There was a problem hiding this comment.
Good catch — this is a pre-existing issue in the workflow, not introduced by this PR. The test-e2e-podman job hardcodes runs-on: ubuntu-latest while defining a matrix with both ubuntu-latest and ubuntu-24.04-arm, so both matrix entries run on the same x86_64 runner. This should be fixed separately. I'll keep this PR scoped to adding timeout-minutes only.
Summary
timeout-minutesto all 11 jobs in.github/workflows/functions.yamlTimeouts set:
prechecktest-unittest-templatestest-integrationtest-e2etest-e2e-podmantest-e2e-runtimestest-e2e-config-cibuildpublish-utils-imagepublish-imageThese are conservative upper bounds — happy to adjust based on observed p99 runtimes.
Test plan
Fixes #3530