| name: Shellcheck | |
| on: | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - "scripts/**/*.sh" | |
| pull_request: | |
| paths: | |
| - "scripts/**/*.sh" | |
| workflow_dispatch: | |
| concurrency: | |
| group: shellcheck-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| jobs: | |
| shellcheck: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Install shellcheck | |
| run: | | |
| set -euo pipefail | |
| sudo apt-get update | |
| sudo apt-get install -y shellcheck | |
| - name: Lint shell scripts | |
| run: | | |
| set -euo pipefail | |
| find scripts -type f -name "*.sh" -print0 | xargs -0 -r shellcheck | |