Files
chromebrew/.github/workflows/Linter-Handoff.yml
Satadru Pramanik, DO, MPH, MEng c99532d1dd Add Actionlint workflow, fix Build workflow. (#11016)
* Add Actionlint workflow, fix Build workflow.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* More Linting...

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Update actionlint version.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Adjust actionlint flags.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Make fail_level none for actionlint until upstream bugs are fixed.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

---------

Signed-off-by: Satadru Pramanik <satadru@gmail.com>
2024-12-20 06:25:05 +00:00

77 lines
2.2 KiB
YAML

---
name: Linter-Handoff
on:
pull_request:
merge_group:
workflow_dispatch:
jobs:
handoff:
runs-on: ubuntu-24.04
outputs:
category: ${{ steps.changed-file-extensions.outputs.category }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v45
- name: Get extensions of changed files
id: changed-file-extensions
run: |
category=
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
ext="${file##*.}"
case $ext in
md)
category+=" Markdown";;
rb)
category+=" Ruby";;
sh)
category+=" Bash";;
yml|yaml)
category+=" YAML";;
*)
echo "Unable to check syntax of $file.";;
esac
# In order for files such as bin/crew to be recognised
[[ "$(file -b $file | cut -d' ' -f1)" == "Ruby" ]] && category+=" Ruby"
done
echo "category=$category" >> $GITHUB_OUTPUT
# Github won't let us do this neatly, see https://github.com/orgs/community/discussions/25246
markdown:
needs: handoff
if: contains(needs.handoff.outputs.category, 'Markdown')
uses: ./.github/workflows/Markdown-lint.yml
ruby:
needs: handoff
if: contains(needs.handoff.outputs.category, 'Ruby')
uses: ./.github/workflows/Rubocop.yml
bash:
needs: handoff
if: contains(needs.handoff.outputs.category, 'Bash')
uses: ./.github/workflows/ShellCheck.yml
yaml:
needs: handoff
if: contains(needs.handoff.outputs.category, 'YAML')
uses: ./.github/workflows/YAMLlint.yml
action-yaml:
needs: handoff
if: contains(needs.handoff.outputs.category, 'YAML')
uses: ./.github/workflows/Actionlint.yml
linter-tests:
runs-on: ubuntu-24.04
needs:
- handoff
- markdown
- ruby
- bash
- yaml
- action-yaml
if: ${{ !cancelled() }}
steps:
- name: fail if linter jobs failed
if: ${{ contains(needs.*.result, 'failure') }}
run: exit 1
- run: echo "Linter jobs succeeded"