Skip to content

Commit cd31222

Browse files
ci: pin actions, add timeouts and concurrency, real release toolchain (#13)
- SHA-pin every third-party action with a version comment; weekly grouped dependabot keeps pins current - timeout-minutes on all jobs; per-ref cancel concurrency for CI and a fixed-group queue for release - toolchain via actions-rust-lang/setup-rust-toolchain (reads rust-toolchain.toml, built-in cache); the release build gets a real toolchain + target step instead of leaning on the runner default
1 parent 1ba0a52 commit cd31222

3 files changed

Lines changed: 38 additions & 9 deletions

File tree

.github/dependabot.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Dependabot version updates. Security updates (the alerts) are a separate repo
2+
# setting and stay on. This keeps the SHA-pinned actions current -- Dependabot
3+
# bumps the pin and its version comment together.
4+
version: 2
5+
updates:
6+
- package-ecosystem: "github-actions"
7+
directory: "/"
8+
schedule:
9+
interval: "weekly"
10+
groups:
11+
actions:
12+
patterns: ["*"]
13+
commit-message:
14+
prefix: "ci"

.github/workflows/ci.yml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,20 @@ permissions:
1616
env:
1717
CARGO_TERM_COLOR: always
1818

19+
concurrency:
20+
group: ci-${{ github.ref }}
21+
cancel-in-progress: true
22+
1923
jobs:
2024
test:
2125
runs-on: ubuntu-latest
26+
timeout-minutes: 15
2227
steps:
23-
- uses: actions/checkout@v7
24-
- uses: dtolnay/rust-toolchain@stable
28+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
29+
# Reads the channel from rust-toolchain.toml; brings built-in caching.
30+
- uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1.17.0
2531
with:
2632
components: clippy, rustfmt
27-
- uses: Swatinem/rust-cache@v2
2833
- name: Install glslang (provides glslangValidator)
2934
run: sudo apt-get update && sudo apt-get install -y glslang-tools
3035
- name: Format

.github/workflows/release.yml

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,26 @@ permissions:
1414
contents: write
1515
pull-requests: write
1616

17+
concurrency:
18+
group: release
19+
cancel-in-progress: false
20+
1721
jobs:
1822
release-please:
1923
runs-on: ubuntu-latest
24+
timeout-minutes: 10
2025
outputs:
2126
release_created: ${{ steps.release.outputs.release_created }}
2227
tag_name: ${{ steps.release.outputs.tag_name }}
2328
steps:
24-
- uses: googleapis/release-please-action@v5
29+
- uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 # v5.0.0
2530
id: release
2631

2732
build:
2833
needs: release-please
2934
if: ${{ needs.release-please.outputs.release_created == 'true' }}
3035
runs-on: ${{ matrix.os }}
36+
timeout-minutes: 45
3137
strategy:
3238
fail-fast: false
3339
matrix:
@@ -39,9 +45,12 @@ jobs:
3945
permissions:
4046
contents: write
4147
steps:
42-
- uses: actions/checkout@v7
43-
- name: Install Rust target
44-
run: rustup target add ${{ matrix.target }}
48+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
49+
# Real toolchain step: reads the channel from rust-toolchain.toml and
50+
# installs the cross target, instead of leaning on the runner default.
51+
- uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1.17.0
52+
with:
53+
target: ${{ matrix.target }}
4554
- name: Build
4655
run: cargo build --release --locked --target ${{ matrix.target }}
4756
- name: Stage asset (unix)
@@ -65,15 +74,16 @@ jobs:
6574
needs: release-please
6675
if: ${{ needs.release-please.outputs.release_created == 'true' }}
6776
runs-on: ubuntu-latest
77+
timeout-minutes: 10
6878
env:
6979
OVSX_PAT: ${{ secrets.OVSX_PAT }}
7080
VSCE_PAT: ${{ secrets.VSCE_PAT }}
7181
defaults:
7282
run:
7383
working-directory: editors/vscode
7484
steps:
75-
- uses: actions/checkout@v7
76-
- uses: actions/setup-node@v6
85+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
86+
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
7787
with:
7888
node-version: 'lts/*'
7989
- run: npm ci

0 commit comments

Comments
 (0)