@@ -146,6 +146,7 @@ jobs:
146146 ci-config:
147147 - '.github/workflows/**'
148148 - '.github/actions/**'
149+ - '.github/actionlint.yaml'
149150 docker-config:
150151 - '.github/workflows/ci-docker-build.yml'
151152 - '.github/workflows/reusable-docker-build.yml'
@@ -166,6 +167,30 @@ jobs:
166167 - '!webapp/src/**/*.stories.*'
167168 - '!webapp/src/test/**'
168169
170+ workflow-lint :
171+ name : " Workflow syntax"
172+ runs-on : ubuntu-latest
173+ needs : [detect-changes]
174+ if : |
175+ needs.detect-changes.outputs.should_skip != 'true' && (
176+ needs.detect-changes.outputs.ci-config == 'true' ||
177+ github.event_name != 'pull_request'
178+ )
179+ permissions :
180+ checks : write
181+ contents : read
182+ steps :
183+ - uses : actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
184+ with :
185+ persist-credentials : false
186+
187+ - uses : reviewdog/action-actionlint@dbe5299849118fd6f099ba563d263d770955a64a # v1.73.2
188+ with :
189+ actionlint_flags : -shellcheck=
190+ fail_level : error
191+ filter_mode : nofilter
192+ reporter : github-check
193+
169194 Quality :
170195 uses : ./.github/workflows/ci-quality-gates.yml
171196 needs : [detect-changes]
@@ -263,7 +288,7 @@ jobs:
263288 permissions :
264289 actions : read
265290 statuses : write
266- needs : [detect-changes, Quality, Security, Test, Changesets, Docker]
291+ needs : [detect-changes, workflow-lint, Quality, Security, Test, Changesets, Docker]
267292 if : always()
268293 steps :
269294 - name : Generate workflow timeline
@@ -314,6 +339,7 @@ jobs:
314339 id : evaluate
315340 run : |
316341 echo "detect-changes: ${{ needs.detect-changes.result }}"
342+ echo "workflow-lint: ${{ needs.workflow-lint.result }}"
317343 echo "Quality: ${{ needs.Quality.result }}"
318344 echo "Security: ${{ needs.Security.result }}"
319345 echo "Test: ${{ needs.Test.result }}"
@@ -362,6 +388,7 @@ jobs:
362388 esac
363389 }
364390
391+ echo "| Workflow syntax | $(result_to_emoji '${{ needs.workflow-lint.result }}') |" >> $GITHUB_STEP_SUMMARY
365392 echo "| Quality | $(result_to_emoji '${{ needs.Quality.result }}') |" >> $GITHUB_STEP_SUMMARY
366393 echo "| Test | $(result_to_emoji '${{ needs.Test.result }}') |" >> $GITHUB_STEP_SUMMARY
367394 echo "| Changesets | $(result_to_emoji '${{ needs.Changesets.result }}') |" >> $GITHUB_STEP_SUMMARY
0 commit comments