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