Skip to content

Commit 6fa8127

Browse files
committed
build: Add timeouts & concurrency control to CI jobs
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
1 parent 79be618 commit 6fa8127

File tree

3 files changed

+33
-4
lines changed

3 files changed

+33
-4
lines changed

.github/workflows/build.yml

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,18 @@ on:
77
- master
88
schedule: [cron: "40 1 * * *"]
99

10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.ref }}
12+
cancel-in-progress: true
13+
1014
env:
1115
JAVA_VERSION: "17"
1216

1317
jobs:
1418
commitsar:
1519
name: Verify commit messages
1620
runs-on: ubuntu-22.04
21+
timeout-minutes: 5
1722
steps:
1823
- uses: actions/checkout@v6
1924
with:
@@ -23,6 +28,7 @@ jobs:
2328
pre-commit:
2429
name: Pre-commit checks
2530
runs-on: ubuntu-22.04
31+
timeout-minutes: 10
2632
steps:
2733
- uses: actions/checkout@v6
2834
with:
@@ -35,6 +41,7 @@ jobs:
3541
eslint:
3642
name: ESLint
3743
runs-on: ubuntu-22.04
44+
timeout-minutes: 10
3845
steps:
3946
- uses: actions/checkout@v6
4047

@@ -60,6 +67,7 @@ jobs:
6067
test-stable:
6168
name: Test (stable)
6269
runs-on: ubuntu-22.04
70+
timeout-minutes: 20
6371
steps:
6472
- uses: actions/checkout@v6
6573

@@ -85,6 +93,7 @@ jobs:
8593
fmt:
8694
name: Rustfmt
8795
runs-on: ubuntu-22.04
96+
timeout-minutes: 10
8897
steps:
8998
- uses: actions/checkout@v6
9099

@@ -116,6 +125,7 @@ jobs:
116125
clippy:
117126
name: Clippy
118127
runs-on: ubuntu-22.04
128+
timeout-minutes: 20
119129
steps:
120130
- uses: actions/checkout@v6
121131

@@ -164,10 +174,11 @@ jobs:
164174
msrv:
165175
name: MSRV
166176
runs-on: ubuntu-22.04
177+
timeout-minutes: 20
167178
steps:
168179
- uses: actions/checkout@v6
169180

170-
- uses: dtolnay/rust-toolchain@master
181+
- uses: dtolnay/rust-toolchain@stable
171182
with:
172183
toolchain: "1.80"
173184

@@ -292,6 +303,7 @@ jobs:
292303

293304
name: NodeJS ${{ matrix.node }} on ${{ matrix.settings.target }}
294305
runs-on: ${{ matrix.settings.host }}
306+
timeout-minutes: 30
295307
env:
296308
DEBUG: napi:*
297309
APP_NAME: css-inline
@@ -468,6 +480,7 @@ jobs:
468480

469481
name: Java 17 on ${{ matrix.os }}
470482
runs-on: ${{ matrix.os }}
483+
timeout-minutes: 30
471484
steps:
472485
- uses: actions/checkout@v6
473486

@@ -504,6 +517,7 @@ jobs:
504517

505518
name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
506519
runs-on: ${{ matrix.os }}
520+
timeout-minutes: 30
507521
steps:
508522
- uses: actions/checkout@v6
509523

@@ -534,6 +548,7 @@ jobs:
534548
build-pyodide:
535549
name: Build PyOdide wheel
536550
runs-on: ubuntu-22.04
551+
timeout-minutes: 30
537552
steps:
538553
- uses: actions/checkout@v6
539554
- uses: dtolnay/rust-toolchain@nightly
@@ -566,6 +581,7 @@ jobs:
566581
clang: ["20"]
567582
name: PHP ${{ matrix.php-version }} on ${{ matrix.os }}
568583
runs-on: ${{ matrix.os }}
584+
timeout-minutes: 30
569585
steps:
570586
- uses: actions/checkout@v6
571587
- uses: dtolnay/rust-toolchain@stable
@@ -632,12 +648,13 @@ jobs:
632648

633649
name: Ruby ${{ matrix.ruby-version }} on ${{ matrix.os }}
634650
runs-on: ${{ matrix.os }}
651+
timeout-minutes: 30
635652
env:
636653
BUNDLE_WITHOUT: ${{ matrix.os == 'windows-2022' && 'bench' || '' }}
637654
steps:
638655
- uses: actions/checkout@v6
639656
- name: Set up Ruby & Rust
640-
uses: oxidize-rb/actions/setup-ruby-and-rust@main
657+
uses: oxidize-rb/actions/setup-ruby-and-rust@v1.4.4
641658
with:
642659
ruby-version: ${{ matrix.ruby-version }}
643660
bundler-cache: true
@@ -670,6 +687,7 @@ jobs:
670687
test-ruby-gem-install:
671688
name: Ruby Gem Build & Install Test
672689
runs-on: ${{ matrix.os }}
690+
timeout-minutes: 30
673691
strategy:
674692
fail-fast: false
675693
matrix:
@@ -680,7 +698,7 @@ jobs:
680698
- uses: actions/checkout@v6
681699

682700
- name: Set up Ruby & Rust
683-
uses: oxidize-rb/actions/setup-ruby-and-rust@main
701+
uses: oxidize-rb/actions/setup-ruby-and-rust@v1.4.4
684702
with:
685703
ruby-version: ${{ matrix.ruby-version }}
686704
bundler-cache: false
@@ -732,7 +750,7 @@ jobs:
732750
test-ruby-gem-install-musl:
733751
name: Ruby Gem Build & Install Test (Alpine/musl)
734752
runs-on: ubuntu-22.04
735-
753+
timeout-minutes: 30
736754
steps:
737755
- uses: actions/checkout@v6
738756

@@ -758,6 +776,7 @@ jobs:
758776
test-wasm:
759777
name: WASM module tests
760778
runs-on: ubuntu-22.04
779+
timeout-minutes: 20
761780
steps:
762781
- uses: actions/checkout@v6
763782

@@ -793,6 +812,7 @@ jobs:
793812
test-c:
794813
name: C bindings tests
795814
runs-on: ubuntu-22.04
815+
timeout-minutes: 20
796816
steps:
797817
- uses: actions/checkout@v6
798818

@@ -814,6 +834,7 @@ jobs:
814834
features:
815835
name: Check features
816836
runs-on: ubuntu-22.04
837+
timeout-minutes: 20
817838
steps:
818839
- uses: actions/checkout@v6
819840

@@ -832,6 +853,7 @@ jobs:
832853
coverage:
833854
name: Code coverage
834855
runs-on: ubuntu-22.04
856+
timeout-minutes: 30
835857
steps:
836858
- uses: actions/checkout@v6
837859

@@ -876,6 +898,7 @@ jobs:
876898
fuzz:
877899
name: Fuzz
878900
runs-on: ubuntu-22.04
901+
timeout-minutes: 15
879902
steps:
880903
- uses: actions/checkout@v6
881904

.github/workflows/codspeed.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,14 @@ on:
77
pull_request:
88
workflow_dispatch:
99

10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.ref }}
12+
cancel-in-progress: true
13+
1014
jobs:
1115
rust:
1216
runs-on: ubuntu-22.04
17+
timeout-minutes: 30
1318
steps:
1419
- uses: actions/checkout@v6
1520

.github/workflows/pages.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ on:
77
jobs:
88
pages:
99
runs-on: ubuntu-22.04
10+
timeout-minutes: 10
1011
steps:
1112
- uses: actions/checkout@v6
1213
- name: Update website

0 commit comments

Comments
 (0)