Run linting tools on shell scripts and GitHub Actions workflows in this project.
Your Task
Run the following checks on changed files (relative to main branch):
- Shell Scripts (shellcheck)
Find changed shell scripts
changed_scripts=$(git diff --name-only main...HEAD 2>/dev/null | grep -E '.sh$')
Run shellcheck on each
for script in $changed_scripts; do if [[ -f "$script" ]]; then shellcheck -f gcc "$script" fi done
- GitHub Actions Workflows (actionlint)
Find changed workflow files
changed_workflows=$(git diff --name-only main...HEAD 2>/dev/null | grep -E '.github/workflows/.*.ya?ml$')
Run actionlint on each
for workflow in $changed_workflows; do if [[ -f "$workflow" ]]; then actionlint "$workflow" fi done
Handling Issues
When lint issues are found:
-
Fix the issues - Correct the code to resolve warnings/errors
-
Only use disable directives as a last resort - If a warning is a false positive or truly unavoidable, add a disable comment with explanation:
shellcheck disable=SC2034 # Variable used by sourcing script
- Report what was fixed - Summarize the changes made
Optional Guidance
$ARGUMENTS