Skip to content

Commit 03ec740

Browse files
committed
chore: standardize workflow timeouts to 4 tiers (10/30/120/240)
Audit all GitHub Actions workflow timeouts against actual run durations and consolidate from 9 different values (2, 10, 30, 40, 60, 90, 120, 230, 270) down to 4 consistent tiers: - 10 min: quick utility jobs (labels, lints, deploys, reports) - 30 min: standard CI build/test/lint, docs build - 120 min: heavy compute (benchmarks, packaging, publishing, fuzz-coverage) - 240 min: marathon fuzz runs and corpus minimization Also adds timeout-minutes to 14 jobs that previously had none (defaulting to the GitHub Actions 6-hour maximum), including sqllogic-test in CI and the fuzz corpus minimization job. Notably, fuzz-coverage was hitting its old 60-min timeout and getting cancelled on most runs — bumping to 120 fixes that. Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>
1 parent ee2af71 commit 03ec740

19 files changed

Lines changed: 47 additions & 33 deletions

.github/workflows/approvals.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ on:
77
jobs:
88
check-approvals:
99
runs-on: ubuntu-latest
10+
timeout-minutes: 10
1011
steps:
1112
- name: Check required approvals
1213
uses: actions/github-script@450193c5abd4cdb17ba9f3ffcfe8f635c4bb6c2a

.github/workflows/bench-dispatch.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ permissions:
1818
jobs:
1919
remove-bench-label:
2020
runs-on: ubuntu-latest
21-
timeout-minutes: 2
21+
timeout-minutes: 10
2222
if: github.event.label.name == 'action/benchmark'
2323
steps:
2424
- uses: actions-ecosystem/action-remove-labels@v1
@@ -34,7 +34,7 @@ jobs:
3434

3535
remove-sql-label:
3636
runs-on: ubuntu-latest
37-
timeout-minutes: 2
37+
timeout-minutes: 10
3838
if: github.event.label.name == 'action/benchmark-sql'
3939
steps:
4040
- uses: actions-ecosystem/action-remove-labels@v1

.github/workflows/ci.yml

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@ env:
2828
jobs:
2929
lint-toml:
3030
runs-on: ubuntu-latest
31-
timeout-minutes: 40
31+
timeout-minutes: 10
3232
steps:
3333
- uses: actions/checkout@v6
3434
- uses: spiraldb/actions/.github/actions/lint-toml@0.18.5
3535

3636
validate-workflow-yaml:
3737
runs-on: ubuntu-latest
38-
timeout-minutes: 40
38+
timeout-minutes: 10
3939
steps:
4040
- uses: actions/checkout@v6
4141
- name: Validate YAML file
@@ -52,7 +52,7 @@ jobs:
5252
${{ github.repository == 'vortex-data/vortex'
5353
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/tag=python-lint', github.run_id)
5454
|| 'ubuntu-latest' }}
55-
timeout-minutes: 40
55+
timeout-minutes: 10
5656
steps:
5757
- uses: runs-on/action@v2
5858
if: github.repository == 'vortex-data/vortex'
@@ -79,7 +79,7 @@ jobs:
7979
${{ github.repository == 'vortex-data/vortex'
8080
&& format('runs-on={0}/runner=amd64-large/image=ubuntu24-full-x64-pre-v2/tag=python-test', github.run_id)
8181
|| 'ubuntu-latest' }}
82-
timeout-minutes: 40
82+
timeout-minutes: 30
8383
env:
8484
RUST_LOG: "info,maturin=off,uv=debug"
8585
MATURIN_PEP517_ARGS: "--profile ci"
@@ -117,7 +117,7 @@ jobs:
117117
python-wheel-build:
118118
name: "Python (wheel build)"
119119
runs-on: ubuntu-latest
120-
timeout-minutes: 40
120+
timeout-minutes: 30
121121
steps:
122122
- uses: actions/checkout@v6
123123
- name: Rust Dependency Cache
@@ -157,7 +157,7 @@ jobs:
157157

158158
rust-docs:
159159
name: "Rust (docs)"
160-
timeout-minutes: 40
160+
timeout-minutes: 30
161161
runs-on: >-
162162
${{ github.repository == 'vortex-data/vortex'
163163
&& format('runs-on={0}/runner=amd64-small/image=ubuntu24-full-x64-pre-v2/tag=rust-docs', github.run_id)
@@ -177,7 +177,7 @@ jobs:
177177
178178
build-rust:
179179
name: "Rust build (${{matrix.config.name}})"
180-
timeout-minutes: 40
180+
timeout-minutes: 30
181181
runs-on: >-
182182
${{ github.repository == 'vortex-data/vortex'
183183
&& format('runs-on={0}/runner={1}/image=ubuntu24-full-x64-pre-v2/tag={2}', github.run_id, matrix.config.runner, matrix.config.name)
@@ -225,7 +225,7 @@ jobs:
225225
226226
check-min-deps:
227227
name: "Check build with minimal dependencies"
228-
timeout-minutes: 40
228+
timeout-minutes: 30
229229
runs-on: >-
230230
${{ github.repository == 'vortex-data/vortex'
231231
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/tag=rust-min-deps', github.run_id)
@@ -241,7 +241,7 @@ jobs:
241241

242242
rust-lint:
243243
name: "Rust (lint)"
244-
timeout-minutes: 40
244+
timeout-minutes: 30
245245
runs-on: >-
246246
${{ github.repository == 'vortex-data/vortex'
247247
&& format('runs-on={0}/runner=amd64-large/image=ubuntu24-full-x64-pre-v2/tag=rust-lint', github.run_id)
@@ -282,7 +282,7 @@ jobs:
282282
283283
rust-lint-no-default:
284284
name: "Rust (lint, no default)"
285-
timeout-minutes: 40
285+
timeout-minutes: 30
286286
runs-on: >-
287287
${{ github.repository == 'vortex-data/vortex'
288288
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/tag=rust-lint-no-default', github.run_id)
@@ -301,7 +301,7 @@ jobs:
301301
302302
public-api:
303303
name: "Public API lock files"
304-
timeout-minutes: 40
304+
timeout-minutes: 30
305305
runs-on: >-
306306
${{ github.repository == 'vortex-data/vortex'
307307
&& format('runs-on={0}/runner=amd64-xsmall/image=ubuntu24-full-x64-pre-v2/tag=public-api', github.run_id)
@@ -335,7 +335,7 @@ jobs:
335335
336336
rust-coverage:
337337
name: "Rust tests (coverage) (${{ matrix.suite }})"
338-
timeout-minutes: 40
338+
timeout-minutes: 30
339339
permissions:
340340
id-token: write
341341
strategy:
@@ -398,7 +398,7 @@ jobs:
398398
${{ github.repository == 'vortex-data/vortex'
399399
&& format('runs-on={0}/pool=amd64-medium-pre-v2/tag=rust-test-sanitizer', github.run_id)
400400
|| 'ubuntu-latest' }}
401-
timeout-minutes: 40
401+
timeout-minutes: 30
402402
env:
403403
ASAN_OPTIONS: "symbolize=1:check_initialization_order=1:detect_leaks=1:leak_check_at_exit=1"
404404
LSAN_OPTIONS: "report_objects=1"
@@ -459,7 +459,7 @@ jobs:
459459
- sanitizer: tsan
460460
sanitizer_flags: "-Zsanitizer=thread"
461461
name: "Rust/C++ FFI tests (${{ matrix.sanitizer }})"
462-
timeout-minutes: 40
462+
timeout-minutes: 30
463463
env:
464464
ASAN_OPTIONS: "symbolize=1:check_initialization_order=1:detect_leaks=1:leak_check_at_exit=1"
465465
LSAN_OPTIONS: "report_objects=1"
@@ -511,7 +511,7 @@ jobs:
511511
cuda-build-lint:
512512
if: github.repository == 'vortex-data/vortex'
513513
name: "CUDA build & lint"
514-
timeout-minutes: 40
514+
timeout-minutes: 30
515515
runs-on: runs-on=${{ github.run_id }}/runner=gpu/tag=cuda-build
516516
steps:
517517
- uses: runs-on/action@v2
@@ -642,7 +642,7 @@ jobs:
642642
643643
rust-test-other:
644644
name: "Rust tests (${{ matrix.os }})"
645-
timeout-minutes: 40
645+
timeout-minutes: 30
646646
strategy:
647647
fail-fast: false
648648
matrix:
@@ -700,7 +700,7 @@ jobs:
700700
${{ github.repository == 'vortex-data/vortex'
701701
&& format('runs-on={0}/pool=amd64-medium-pre-v2/tag=java', github.run_id)
702702
|| 'ubuntu-latest' }}
703-
timeout-minutes: 40
703+
timeout-minutes: 30
704704
steps:
705705
- uses: runs-on/action@v2
706706
if: github.repository == 'vortex-data/vortex'
@@ -724,7 +724,7 @@ jobs:
724724
- { shard: 7, name: "Encodings 4", packages: "vortex-sparse vortex-zigzag vortex-zstd" }
725725
- { shard: 8, name: "Storage formats", packages: "vortex-flatbuffers vortex-proto vortex-btrblocks" }
726726
name: "Benchmark with Codspeed (Shard #${{ matrix.shard }})"
727-
timeout-minutes: 40
727+
timeout-minutes: 30
728728
runs-on: >-
729729
${{ github.repository == 'vortex-data/vortex'
730730
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/tag=bench-codspeed-{1}', github.run_id, matrix.shard)
@@ -757,7 +757,7 @@ jobs:
757757
license-check-and-audit-check:
758758
name: License Check and Audit Check
759759
runs-on: ubuntu-latest
760-
timeout-minutes: 40
760+
timeout-minutes: 30
761761
strategy:
762762
matrix:
763763
checks:
@@ -773,7 +773,7 @@ jobs:
773773

774774
cxx-test:
775775
name: "C++ build"
776-
timeout-minutes: 40
776+
timeout-minutes: 30
777777
runs-on: >-
778778
${{ github.repository == 'vortex-data/vortex'
779779
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/tag=cxx-build', github.run_id)
@@ -806,6 +806,7 @@ jobs:
806806
${{ github.repository == 'vortex-data/vortex'
807807
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/tag=sql-logic-test', github.run_id)
808808
|| 'ubuntu-latest' }}
809+
timeout-minutes: 30
809810
steps:
810811
- uses: runs-on/action@v2
811812
if: github.repository == 'vortex-data/vortex'
@@ -824,7 +825,7 @@ jobs:
824825
wasm-integration:
825826
name: "WASM integration smoke test"
826827
runs-on: ubuntu-latest
827-
timeout-minutes: 40
828+
timeout-minutes: 30
828829
steps:
829830
- uses: actions/checkout@v6
830831
- uses: ./.github/actions/setup-rust
@@ -847,7 +848,7 @@ jobs:
847848
${{ github.repository == 'vortex-data/vortex'
848849
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/tag=rust-miri', github.run_id)
849850
|| 'ubuntu-latest' }}
850-
timeout-minutes: 40
851+
timeout-minutes: 30
851852
env:
852853
MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-symbolic-alignment-check -Zmiri-disable-isolation -Zmiri-env-forward=RUST_BACKTRACE
853854
RUSTFLAGS: "-A warnings"
@@ -870,7 +871,7 @@ jobs:
870871
${{ github.repository == 'vortex-data/vortex'
871872
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/tag=generated-files', github.run_id)
872873
|| 'ubuntu-latest' }}
873-
timeout-minutes: 40
874+
timeout-minutes: 30
874875
steps:
875876
- uses: runs-on/action@v2
876877
if: github.repository == 'vortex-data/vortex'
@@ -932,7 +933,7 @@ jobs:
932933
runs-on: ${{ matrix.target.runs-on }}
933934
container:
934935
image: "ubuntu:20.04"
935-
timeout-minutes: 40
936+
timeout-minutes: 30
936937
strategy:
937938
fail-fast: false
938939
matrix:
@@ -963,7 +964,7 @@ jobs:
963964

964965
rust-publish-dry-run:
965966
name: "Rust publish dry-run"
966-
timeout-minutes: 40
967+
timeout-minutes: 30
967968
runs-on: >-
968969
${{ github.repository == 'vortex-data/vortex'
969970
&& format('runs-on={0}/runner=amd64-xsmall/image=ubuntu24-full-x64-pre-v2/tag=rust-publish-dry-run', github.run_id)

.github/workflows/claude.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ jobs:
2323
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
2424
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
2525
runs-on: ubuntu-latest
26+
timeout-minutes: 120
2627
permissions:
2728
contents: read
2829
pull-requests: read

.github/workflows/close-fixed-fuzzer-issues.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
${{ github.repository == 'vortex-data/vortex'
3030
&& format('runs-on={0}/runner=arm64-medium/disk=large/tag=fuzzer-cleanup-{1}', github.run_id, matrix.target)
3131
|| 'ubuntu-latest' }}
32-
timeout-minutes: 60
32+
timeout-minutes: 120
3333
steps:
3434
- uses: runs-on/action@v2
3535
if: github.repository == 'vortex-data/vortex'

.github/workflows/compat-gen-upload.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ jobs:
2727
${{ github.repository == 'vortex-data/vortex'
2828
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/tag=compat-gen-dry-run', github.run_id)
2929
|| 'ubuntu-latest' }}
30+
timeout-minutes: 30
3031
permissions:
3132
id-token: write
3233
contents: read
@@ -77,6 +78,7 @@ jobs:
7778
${{ github.repository == 'vortex-data/vortex'
7879
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/tag=compat-gen-upload', github.run_id)
7980
|| 'ubuntu-latest' }}
81+
timeout-minutes: 30
8082
environment: compat-upload
8183
permissions:
8284
id-token: write

.github/workflows/docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ permissions:
1717
jobs:
1818
build:
1919
runs-on: ubuntu-latest
20-
timeout-minutes: 120
20+
timeout-minutes: 30
2121
steps:
2222
- uses: actions/checkout@v6
2323
- uses: ./.github/actions/setup-rust

.github/workflows/fuzz-coverage.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
fail-fast: false
2121
matrix:
2222
fuzz_target: [array_ops, file_io, compress_roundtrip]
23-
timeout-minutes: 60
23+
timeout-minutes: 120
2424
runs-on: >-
2525
${{ github.repository == 'vortex-data/vortex'
2626
&& format('runs-on={0}/runner=arm64-medium/disk=large', github.run_id)

.github/workflows/fuzzer-fix-automation.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
github.event_name == 'workflow_dispatch'
3333
3434
runs-on: ubuntu-latest
35-
timeout-minutes: 90
35+
timeout-minutes: 120
3636

3737
permissions:
3838
contents: write

.github/workflows/labels.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ jobs:
1313
check_changelog_label:
1414
name: Validate Changelog Label
1515
runs-on: ubuntu-latest
16+
timeout-minutes: 10
1617
permissions:
1718
pull-requests: read # Grant permission to read PR information
1819
steps:

0 commit comments

Comments
 (0)