@@ -22,12 +22,12 @@ jobs:
2222 runs-on : ubuntu-latest
2323 steps :
2424 - name : Checkout code
25- uses : actions/checkout@v4
25+ uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
2626 with :
2727 fetch-depth : 0 # Full history for SonarCloud
2828
2929 - name : Set up Julia
30- uses : julia-actions/setup-julia@v1
30+ uses : julia-actions/setup-julia@ac0d62164df5a47de404f4e96ce86a1a28a28d56 # v1
3131 with :
3232 version : ${{ env.JULIA_VERSION }}
3333
@@ -58,10 +58,10 @@ jobs:
5858 contents : read
5959 steps :
6060 - name : Checkout code
61- uses : actions/checkout@v4
61+ uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
6262
6363 - name : Run GitLeaks (secrets detection)
64- uses : gitleaks/gitleaks-action@v2
64+ uses : gitleaks/gitleaks-action@ff98106e4c7b2bc287b24eaf42907196329070c7 # v2
6565 env :
6666 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
6767 GITLEAKS_LICENSE : ${{ secrets.GITLEAKS_LICENSE }}
@@ -85,15 +85,15 @@ jobs:
8585 category : ' trivy-filesystem'
8686
8787 - name : Run Snyk security scan
88- uses : snyk/actions/node@master
88+ uses : snyk/actions/node@9adf32b1121593767fc3c057af55b55db032dc04 # v1.0.0
8989 continue-on-error : true
9090 env :
9191 SNYK_TOKEN : ${{ secrets.SNYK_TOKEN }}
9292 with :
9393 args : --severity-threshold=high
9494
9595 - name : OWASP Dependency Check
96- uses : dependency-check/Dependency-Check_Action@main
96+ uses : dependency-check/Dependency-Check_Action@2ba636726705b0f74f126ebeaacaf2ad4600b967 # main
9797 with :
9898 project : ' robot-vacuum-cleaner'
9999 path : ' .'
@@ -102,7 +102,7 @@ jobs:
102102 continue-on-error : true
103103
104104 - name : Upload dependency check report
105- uses : actions/upload-artifact@v4
105+ uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
106106 if : always()
107107 with :
108108 name : dependency-check-report
@@ -117,10 +117,10 @@ jobs:
117117 julia-version : ['1.9', '1.10', 'nightly']
118118 steps :
119119 - name : Checkout code
120- uses : actions/checkout@v4
120+ uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
121121
122122 - name : Set up Julia ${{ matrix.julia-version }}
123- uses : julia-actions/setup-julia@v1
123+ uses : julia-actions/setup-julia@ac0d62164df5a47de404f4e96ce86a1a28a28d56 # v1
124124 with :
125125 version : ${{ matrix.julia-version }}
126126
@@ -135,12 +135,12 @@ jobs:
135135 julia --project=. -e 'using Pkg; Pkg.test(coverage=true)'
136136
137137 - name : Process coverage
138- uses : julia-actions/julia-processcoverage@v1
138+ uses : julia-actions/julia-processcoverage@03114f09f119417c3242a9fb6e0b722676aedf38 # v1
139139 with :
140140 directories : src/julia/RobotVacuum/src
141141
142142 - name : Upload coverage to Codecov
143- uses : codecov/codecov-action@v4
143+ uses : codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4
144144 with :
145145 files : lcov.info
146146 flags : julia-${{ matrix.julia-version }}
@@ -153,10 +153,10 @@ jobs:
153153 runs-on : ubuntu-latest
154154 steps :
155155 - name : Checkout code
156- uses : actions/checkout@v4
156+ uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
157157
158158 - name : Install Rust toolchain
159- uses : actions-rust-lang/setup-rust-toolchain@v1
159+ uses : actions-rust-lang/setup-rust-toolchain@1780873c7b576612439a134613cc4cc74ce5538c # v1
160160 with :
161161 toolchain : ${{ env.RUST_VERSION }}
162162 components : rustfmt, clippy
@@ -183,7 +183,7 @@ jobs:
183183 continue-on-error : true
184184
185185 - name : Upload Rust coverage
186- uses : codecov/codecov-action@v4
186+ uses : codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4
187187 with :
188188 file : src/rust/coverage/cobertura.xml
189189 flags : rust
@@ -202,22 +202,22 @@ jobs:
202202 security-events : write
203203 steps :
204204 - name : Checkout code
205- uses : actions/checkout@v4
205+ uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
206206
207207 - name : Set up Docker Buildx
208- uses : docker/setup-buildx-action@v3
208+ uses : docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3
209209
210210 - name : Log in to Container Registry
211211 if : github.event_name != 'pull_request'
212- uses : docker/login-action@v3
212+ uses : docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3
213213 with :
214214 registry : ${{ env.REGISTRY }}
215215 username : ${{ github.actor }}
216216 password : ${{ secrets.GITHUB_TOKEN }}
217217
218218 - name : Extract metadata
219219 id : meta
220- uses : docker/metadata-action@v5
220+ uses : docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5
221221 with :
222222 images : ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
223223 tags : |
@@ -229,7 +229,7 @@ jobs:
229229 type=raw,value=latest,enable={{is_default_branch}}
230230
231231 - name : Build container image
232- uses : docker/build-push-action@v5
232+ uses : docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5
233233 with :
234234 context : .
235235 file : ./docker/Containerfile
@@ -258,21 +258,21 @@ jobs:
258258 category : ' trivy-container'
259259
260260 - name : Run Hadolint (Dockerfile linting)
261- uses : hadolint/hadolint-action@v3.1.0
261+ uses : hadolint/hadolint-action@54c9adbab1582c2ef04b2016b760714a4bfde3cf # v3.1.0
262262 with :
263263 dockerfile : docker/Containerfile
264264 failure-threshold : warning
265265
266266 - name : Scan with Grype
267- uses : anchore/scan-action@v3
267+ uses : anchore/scan-action@3343887d815d7b07465f6fdcd395bd66508d486a # v3
268268 with :
269269 image : ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }}
270270 fail-build : false
271271 severity-cutoff : high
272272
273273 - name : Push container image
274274 if : github.event_name != 'pull_request'
275- uses : docker/build-push-action@v5
275+ uses : docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5
276276 with :
277277 context : .
278278 file : ./docker/Containerfile
@@ -287,18 +287,18 @@ jobs:
287287 needs : [test-julia]
288288 steps :
289289 - name : Checkout code
290- uses : actions/checkout@v4
290+ uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
291291 with :
292292 fetch-depth : 0
293293
294294 - name : Download Julia coverage
295- uses : actions/download-artifact@v4
295+ uses : actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
296296 with :
297297 name : julia-coverage
298298 path : htmlcov/
299299
300300 - name : SonarCloud Scan
301- uses : SonarSource/sonarcloud-github-action@master
301+ uses : SonarSource/sonarcloud-github-action@ffc3010689be73b8e5ae0c57ce35968afd7909e8 # v5.0.0
302302 env :
303303 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
304304 SONAR_TOKEN : ${{ secrets.SONAR_TOKEN }}
@@ -343,10 +343,10 @@ jobs:
343343
344344 steps :
345345 - name : Checkout code
346- uses : actions/checkout@v4
346+ uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
347347
348348 - name : Set up Julia
349- uses : julia-actions/setup-julia@v1
349+ uses : julia-actions/setup-julia@ac0d62164df5a47de404f4e96ce86a1a28a28d56 # v1
350350 with :
351351 version : ${{ env.JULIA_VERSION }}
352352
@@ -377,7 +377,7 @@ jobs:
377377 url : https://robot-vacuum.example.com
378378 steps :
379379 - name : Checkout code
380- uses : actions/checkout@v4
380+ uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
381381
382382 - name : Deploy to production
383383 run : |
@@ -386,7 +386,7 @@ jobs:
386386 # e.g., kubectl apply, helm upgrade, etc.
387387
388388 - name : Notify deployment
389- uses : 8398a7/action-slack@v3
389+ uses : 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e # v3
390390 if : always()
391391 with :
392392 status : ${{ job.status }}
0 commit comments