mirror of https://github.com/astral-sh/uv
Add shellcheck CI (#7888)
<!--
Thank you for contributing to uv! To help us out with reviewing, please
consider the following:
- Does this pull request include a summary of the change? (See below.)
- Does this pull request include a descriptive title?
- Does this pull request include references to any relevant issues?
-->
## Summary
I started learning `uv` by inspecting the source code.
I've noticed that your shell scripts are very good! Which is rare!
## Test Plan
I propose to add `shellcheck` to the CI.
It is a great tool to help finding bugs and style issues in shell code.
Techincal details:
- This CI job will only run when any `.sh` files are changed (or the job
definition file)
- It takes just several seconds even on local machine:
```
» time shellcheck -S style **/*.sh
shellcheck -S style **/*.sh 0.02s user 0.05s system 61% cpu 0.123 total
```
- It is easy to use, for example: I just fixed the single problem you
had in your code with `# shellcheck disable=SC1091`
- I am using this tool for around 8 years now and didn't have any
issues. Examples:
ca899f3b69/.github/workflows/test.yml (L22-L27)
and
https://github.com/wemake-services/wemake-django-template/blob/master/.github/workflows/shellcheck.yml
But, I understand that build / lint tools are very subjective. So, feel
free to close :)
This commit is contained in:
parent
cd582cacab
commit
56521937b7
|
|
@ -2,7 +2,11 @@
|
||||||
$schema: "https://docs.renovatebot.com/renovate-schema.json",
|
$schema: "https://docs.renovatebot.com/renovate-schema.json",
|
||||||
dependencyDashboard: true,
|
dependencyDashboard: true,
|
||||||
suppressNotifications: ["prEditedNotification"],
|
suppressNotifications: ["prEditedNotification"],
|
||||||
extends: ["config:recommended"],
|
extends: [
|
||||||
|
"config:recommended",
|
||||||
|
// For tool versions defined in GitHub Actions:
|
||||||
|
"customManagers:githubActionsVersions",
|
||||||
|
],
|
||||||
labels: ["internal"],
|
labels: ["internal"],
|
||||||
schedule: ["before 4am on Monday"],
|
schedule: ["before 4am on Monday"],
|
||||||
semanticCommits: "disabled",
|
semanticCommits: "disabled",
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,17 @@ jobs:
|
||||||
- name: "Python type check"
|
- name: "Python type check"
|
||||||
run: uvx mypy
|
run: uvx mypy
|
||||||
|
|
||||||
|
- name: "Lint shell scripts"
|
||||||
|
uses: ludeeus/action-shellcheck@2.0.0
|
||||||
|
env:
|
||||||
|
# renovate: datasource=github-tags depName=koalaman/shellcheck
|
||||||
|
SHELLCHECK_VERSION: "v0.10.0"
|
||||||
|
SHELLCHECK_OPTS: --shell bash
|
||||||
|
with:
|
||||||
|
version: ${{ env.SHELLCHECK_VERSION }}
|
||||||
|
severity: style
|
||||||
|
check_together: "yes"
|
||||||
|
|
||||||
cargo-clippy:
|
cargo-clippy:
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
needs: determine_changes
|
needs: determine_changes
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ cd "$script_root/scenarios"
|
||||||
echo "Setting up a temporary environment..."
|
echo "Setting up a temporary environment..."
|
||||||
uv venv
|
uv venv
|
||||||
|
|
||||||
|
# shellcheck disable=SC1091
|
||||||
source ".venv/bin/activate"
|
source ".venv/bin/activate"
|
||||||
uv pip install -r requirements.txt --refresh-package packse
|
uv pip install -r requirements.txt --refresh-package packse
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue