A GitHub Action that performs static analysis for shell scripts using ShellCheck.
Shell Linter can perform static analysis in various ways. By default it scans all the ShellCheck-supported shell scripts (sh/bash/dash/ksh) in your project. However, you can use the path
parameter to scan a specific file or folder or use the exclude-paths
parameter to exclude files or folders from the scan. With Shell Linter, you can also specify the minimum severity of errors to consider using the severity
parameter. Specific use cases along with examples are shown below:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v1
- name: Run ShellCheck
uses: azohra/shell-linter@latest
- name: Run ShellCheck
uses: azohra/shell-linter@latest
with:
path: "setup.sh"
- name: Run ShellCheck
uses: azohra/shell-linter@latest
with:
path: "setup,deploy.sh"
- name: Run ShellCheck
uses: azohra/shell-linter@latest
with:
path: "src"
- name: Run ShellCheck
uses: azohra/shell-linter@latest
with:
path: "src/*.sh"
- name: Run ShellCheck
uses: azohra/shell-linter@latest
with:
exclude-paths: "src/setup.sh,tests/unit_tests"
Note that exclude-paths
only accepts paths relative to your project's root directory. However, do not include ./
at the beginning of the paths.
To exclude a folder and it's content recursively just provide the path of the folder without a /
at the end. In the example above, the entire folder at the path tests/unit_tests
will be excluded from linting.
- name: Run ShellCheck
uses: azohra/shell-linter@latest
with:
path: "src/*.sh"
severity: "error"
- name: Run ShellCheck
uses: azohra/[email protected]
Optional. Execute lint check on a specific file or folder. Default: .
Optional. Exclude files and folders from ShellCheck scan.
Optional. Specify minimum severity of errors to consider [style, info, warning, error]. Default: style
This software is available as open source under the terms of the MIT License.