Skip to content

Commit 39baea8

Browse files
authored
ci: pin actions to SHAs and add dependabot config (#3494)
Most actions in this repo were several major versions behind, which is why every CI run has been emitting Node 20 deprecation warnings. Pinning every action to a commit SHA (with the version as a trailing comment) means each CI run uses the exact code that was reviewed when the bump landed, instead of whatever a maintainer last pointed the major tag at. Dependabot is configured to group all action bumps into one weekly PR with a 7-day cooldown. Worth flagging: - The Claude Code action ships ~daily but the model is set separately via `--model` in `claude_args`, so SHA-pinning the action gives reproducibility without locking the model. - The kubeconform container is digest-pinned (`docker://image:tag@sha256:...`). Dependabot's github-actions ecosystem doesn't track `docker://` references ([explicit TODO in dependabot-core](https://github.com/dependabot/dependabot-core/blob/main/github_actions/lib/dependabot/github_actions/file_parser.rb)), so it needs manual bumps either way - but the digest pin protects against tag repointing for free.
1 parent 7c7d785 commit 39baea8

18 files changed

Lines changed: 114 additions & 102 deletions

.github/dependabot.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: github-actions
4+
directory: /
5+
schedule:
6+
interval: weekly
7+
cooldown:
8+
default-days: 7
9+
groups:
10+
github-actions:
11+
patterns:
12+
- "*"

.github/workflows/changesets-pr.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ jobs:
2525
if: github.repository == 'triggerdotdev/trigger.dev'
2626
steps:
2727
- name: Checkout
28-
uses: actions/checkout@v4
28+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
2929
with:
3030
fetch-depth: 0
3131

3232
- name: Setup pnpm
33-
uses: pnpm/action-setup@v4
33+
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
3434

3535
- name: Setup node
36-
uses: buildjet/setup-node@v4
36+
uses: buildjet/setup-node@6131e76b005f1e3f5c721e0ca2d8279eb577c3a8 # v4.0.4
3737
with:
3838
node-version: 20.20.0
3939
cache: "pnpm"
@@ -43,7 +43,7 @@ jobs:
4343

4444
- name: Create release PR
4545
id: changesets
46-
uses: changesets/action@v1
46+
uses: changesets/action@6a0a831ff30acef54f2c6aa1cbbc1096b066edaf # v1.7.0
4747
with:
4848
version: pnpm run changeset:version
4949
commit: "chore: release"
@@ -81,17 +81,17 @@ jobs:
8181
contents: write
8282
steps:
8383
- name: Checkout release branch
84-
uses: actions/checkout@v4
84+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
8585
with:
8686
ref: changeset-release/main
8787

8888
- name: Setup pnpm
89-
uses: pnpm/action-setup@v4
89+
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
9090
with:
9191
version: 10.23.0
9292

9393
- name: Setup node
94-
uses: buildjet/setup-node@v4
94+
uses: buildjet/setup-node@6131e76b005f1e3f5c721e0ca2d8279eb577c3a8 # v4.0.4
9595
with:
9696
node-version: 20.20.0
9797

@@ -130,7 +130,7 @@ jobs:
130130
contents: write
131131
steps:
132132
- name: Checkout release branch
133-
uses: actions/checkout@v4
133+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
134134
with:
135135
ref: changeset-release/main
136136

.github/workflows/claude-md-audit.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@ jobs:
2727
id-token: write
2828
steps:
2929
- name: Checkout repository
30-
uses: actions/checkout@v4
30+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3131
with:
3232
fetch-depth: 0
3333

3434
- name: Run Claude Code
3535
id: claude
36-
uses: anthropics/claude-code-action@v1
36+
uses: anthropics/claude-code-action@fefa07e9c665b7320f08c3b525980457f22f58aa # v1.0.111
3737
with:
3838
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
3939
use_sticky_comment: true

.github/workflows/claude.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,17 @@ jobs:
2626
actions: read # Required for Claude to read CI results on PRs
2727
steps:
2828
- name: Checkout repository
29-
uses: actions/checkout@v4
29+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3030
with:
3131
fetch-depth: 1
3232

3333
- name: ⎔ Setup pnpm
34-
uses: pnpm/action-setup@v4
34+
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
3535
with:
3636
version: 10.23.0
3737

3838
- name: ⎔ Setup node
39-
uses: buildjet/setup-node@v4
39+
uses: buildjet/setup-node@6131e76b005f1e3f5c721e0ca2d8279eb577c3a8 # v4.0.4
4040
with:
4141
node-version: 20.20.0
4242
cache: "pnpm"
@@ -49,7 +49,7 @@ jobs:
4949

5050
- name: Run Claude Code
5151
id: claude
52-
uses: anthropics/claude-code-action@v1
52+
uses: anthropics/claude-code-action@fefa07e9c665b7320f08c3b525980457f22f58aa # v1.0.111
5353
with:
5454
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
5555

.github/workflows/docs.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ jobs:
2626
working-directory: ./docs
2727
steps:
2828
- name: 📥 Checkout repository
29-
uses: actions/checkout@v4
29+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3030

3131
- name: 📦 Cache npm
32-
uses: actions/cache@v4
32+
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
3333
with:
3434
path: |
3535
~/.npm

.github/workflows/e2e-webapp.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,25 +41,25 @@ jobs:
4141
run: sudo systemctl restart docker
4242

4343
- name: ⬇️ Checkout repo
44-
uses: actions/checkout@v4
44+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
4545
with:
4646
fetch-depth: 0
4747

4848
- name: ⎔ Setup pnpm
49-
uses: pnpm/action-setup@v4
49+
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
5050
with:
5151
version: 10.23.0
5252

5353
- name: ⎔ Setup node
54-
uses: buildjet/setup-node@v4
54+
uses: buildjet/setup-node@6131e76b005f1e3f5c721e0ca2d8279eb577c3a8 # v4.0.4
5555
with:
5656
node-version: 20.20.0
5757
cache: "pnpm"
5858

5959
# ..to avoid rate limits when pulling images
6060
- name: 🐳 Login to DockerHub
6161
if: ${{ env.DOCKERHUB_USERNAME }}
62-
uses: docker/login-action@v3
62+
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
6363
with:
6464
username: ${{ secrets.DOCKERHUB_USERNAME }}
6565
password: ${{ secrets.DOCKERHUB_TOKEN }}

.github/workflows/e2e.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,17 @@ jobs:
2424
package-manager: ["npm", "pnpm"]
2525
steps:
2626
- name: ⬇️ Checkout repo
27-
uses: actions/checkout@v4
27+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
2828
with:
2929
fetch-depth: 0
3030

3131
- name: ⎔ Setup pnpm
32-
uses: pnpm/action-setup@v4
32+
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
3333
with:
3434
version: 10.23.0
3535

3636
- name: ⎔ Setup node
37-
uses: buildjet/setup-node@v4
37+
uses: buildjet/setup-node@6131e76b005f1e3f5c721e0ca2d8279eb577c3a8 # v4.0.4
3838
with:
3939
node-version: 20.20.0
4040

.github/workflows/helm-prerelease.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ jobs:
3333
contents: read
3434
steps:
3535
- name: Checkout
36-
uses: actions/checkout@v4
36+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3737

3838
- name: Set up Helm
39-
uses: azure/setup-helm@v4
39+
uses: azure/setup-helm@dda3372f752e03dde6b3237bc9431cdc2f7a02a2 # v5.0.0
4040
with:
4141
version: "3.18.3"
4242

@@ -59,7 +59,7 @@ jobs:
5959
--output-dir ./helm-output
6060
6161
- name: Validate manifests
62-
uses: docker://ghcr.io/yannh/kubeconform:v0.7.0
62+
uses: docker://ghcr.io/yannh/kubeconform:v0.7.0@sha256:85dbef6b4b312b99133decc9c6fc9495e9fc5f92293d4ff3b7e1b30f5611823c
6363
with:
6464
entrypoint: "/kubeconform"
6565
args: "-summary -output json ./helm-output"
@@ -77,10 +77,10 @@ jobs:
7777
pull-requests: write
7878
steps:
7979
- name: Checkout
80-
uses: actions/checkout@v4
80+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
8181

8282
- name: Set up Helm
83-
uses: azure/setup-helm@v4
83+
uses: azure/setup-helm@dda3372f752e03dde6b3237bc9431cdc2f7a02a2 # v5.0.0
8484
with:
8585
version: "3.18.3"
8686

@@ -93,7 +93,7 @@ jobs:
9393
for file in ./charts/*.tgz; do echo "Extracting $file"; tar -xzf "$file" -C ./charts; done
9494
9595
- name: Log in to Container Registry
96-
uses: docker/login-action@v3
96+
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
9797
with:
9898
registry: ${{ env.REGISTRY }}
9999
username: ${{ github.actor }}
@@ -161,7 +161,7 @@ jobs:
161161
162162
- name: Find existing comment
163163
if: github.event_name == 'pull_request'
164-
uses: peter-evans/find-comment@v3
164+
uses: peter-evans/find-comment@b30e6a3c0ed37e7c023ccd3f1db5c6c0b0c23aad # v4.0.0
165165
id: find-comment
166166
with:
167167
issue-number: ${{ github.event.pull_request.number }}
@@ -170,7 +170,7 @@ jobs:
170170

171171
- name: Create or update PR comment
172172
if: github.event_name == 'pull_request'
173-
uses: peter-evans/create-or-update-comment@v4
173+
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
174174
with:
175175
comment-id: ${{ steps.find-comment.outputs.comment-id }}
176176
issue-number: ${{ github.event.pull_request.number }}

.github/workflows/publish-webapp.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ jobs:
2424
short_sha: ${{ steps.get_commit.outputs.sha_short }}
2525
steps:
2626
- name: 🏭 Setup Depot CLI
27-
uses: depot/setup-action@v1
27+
uses: depot/setup-action@15c09a5f77a0840ad4bce955686522a257853461 # v1.7.1
2828

2929
- name: ⬇️ Checkout repo
30-
uses: actions/checkout@v4
30+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3131
with:
3232
submodules: recursive
3333

@@ -68,14 +68,14 @@ jobs:
6868
echo "BUILD_TIMESTAMP_SECONDS=$(date +%s)" >> "$GITHUB_OUTPUT"
6969
7070
- name: 🐙 Login to GitHub Container Registry
71-
uses: docker/login-action@v3
71+
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
7272
with:
7373
registry: ghcr.io
7474
username: ${{ github.repository_owner }}
7575
password: ${{ secrets.GITHUB_TOKEN }}
7676

7777
- name: 🐳 Build image and push to GitHub Container Registry
78-
uses: depot/build-push-action@v1
78+
uses: depot/build-push-action@5f3b3c2e5a00f0093de47f657aeaefcedff27d18 # v1.17.0
7979
with:
8080
file: ./docker/Dockerfile
8181
platforms: linux/amd64,linux/arm64

.github/workflows/publish-worker-v4.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@ jobs:
3737
DOCKER_BUILDKIT: "1"
3838
steps:
3939
- name: 🏭 Setup Depot CLI
40-
uses: depot/setup-action@v1
40+
uses: depot/setup-action@15c09a5f77a0840ad4bce955686522a257853461 # v1.7.1
4141

4242
- name: ⬇️ Checkout git repo
43-
uses: actions/checkout@v4
43+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
4444

4545
- name: 📦 Get image repo
4646
id: get_repository
@@ -74,14 +74,14 @@ jobs:
7474
echo "image_tags=${image_tags}" >> "$GITHUB_OUTPUT"
7575
7676
- name: 🐙 Login to GitHub Container Registry
77-
uses: docker/login-action@v3
77+
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
7878
with:
7979
registry: ghcr.io
8080
username: ${{ github.repository_owner }}
8181
password: ${{ secrets.GITHUB_TOKEN }}
8282

8383
- name: 🐳 Build image and push to GitHub Container Registry
84-
uses: depot/build-push-action@v1
84+
uses: depot/build-push-action@5f3b3c2e5a00f0093de47f657aeaefcedff27d18 # v1.17.0
8585
with:
8686
file: ./apps/${{ matrix.package }}/Containerfile
8787
platforms: linux/amd64,linux/arm64

0 commit comments

Comments
 (0)