coreutils/.github/workflows/CheckScripts.yml
2023-09-20 10:36:32 +02:00

56 lines
1.3 KiB
YAML

name: CheckScripts
# spell-checker:ignore ludeeus mfinelli
env:
SCRIPT_DIR: 'util'
on:
push:
branches:
- main
paths:
- 'util/**/*.sh'
pull_request:
branches:
- main
paths:
- 'util/**/*.sh'
# End the current execution if there is a new changeset in the PR.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
shell_check:
name: ShellScript/Check
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- name: Run ShellCheck
uses: ludeeus/action-shellcheck@master
env:
SHELLCHECK_OPTS: -s bash
with:
severity: warning
scandir: ${{ env.SCRIPT_DIR }}
format: tty
shell_fmt:
name: ShellScript/Format
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- name: Setup shfmt
uses: mfinelli/setup-shfmt@v3
- name: Run shfmt
shell: bash
run: |
# fmt options: bash syntax, 4 spaces indent, indent for switch-case
echo "## show the differences between formatted and original scripts..."
find ${{ env.SCRIPT_DIR }} -name "*.sh" -print0 | xargs -0 shfmt -ln=bash -i 4 -ci -d || true