Streamline CI/CD pipeline#261
Conversation
Code Review by Qodo
1. Ruff missing from lockfile
|
Review Summary by QodoStreamline CI/CD pipeline with validation gates and uv tooling
WalkthroughsDescription• Add validation gate job before production image build/deploy • Switch CI from auto-format commits to read-only format/lint/test checks • Run Python tooling through uv with frozen dependencies • Add GitHub Actions cache settings for Docker Buildx builds • Turn off SSH deploy debug logging and restrict deploy to main branch • Use npm ci for deterministic frontend dependency installs Diagramflowchart LR
A["Code Push/PR"] --> B["Validate Job"]
B --> C["Format & Lint Checks"]
C --> D["Type Check & Tests"]
D --> E["Build Job"]
E --> F["Docker Build with Cache"]
F --> G["Deploy Job"]
G --> H["SSH Deploy to Main"]
File Changes1. .github/workflows/build-and-deploy.yml
|
CI Feedback 🧐A test triggered by this PR failed. Here is an AI-generated analysis of the failure:
|
| - name: Install dependencies | ||
| run: uv sync --frozen --all-groups | ||
| - name: Check Ruff formatting | ||
| run: uv run ruff format --check . | ||
| - name: Run Ruff lint | ||
| run: ruff check --output-format=github . | ||
| run: uv run ruff check --output-format=github . |
There was a problem hiding this comment.
1. Ruff missing from lockfile 🐞 Bug ≡ Correctness
ci.yml and the new build-and-deploy.yml validation job run uv run ruff ... after `uv sync --frozen, but ruff is not declared in pyproject.toml nor present in uv.lock`, so these steps will fail and block CI and production builds.
Agent Prompt
## Issue description
GitHub Actions now installs Python tooling via `uv sync --frozen --all-groups`, but the workflow then runs `uv run ruff ...`. Since `ruff` is not declared as a dependency group entry (and therefore is not in `uv.lock`), `uv run ruff` will fail and block CI and the production validation gate.
## Issue Context
- `uv sync --frozen` will not resolve/install packages that are not already in the lockfile.
- `ruff` currently appears only as configuration (`[tool.ruff]`), not as an installable dependency.
## Fix Focus Areas
- pyproject.toml[21-26]
- uv.lock[650-673]
- .github/workflows/ci.yml[43-48]
- .github/workflows/build-and-deploy.yml[43-48]
## Expected fix
1. Add `ruff` to a dependency group used by CI (e.g., `[dependency-groups].dev`).
2. Regenerate the lockfile (e.g., `uv lock`) and commit the updated `uv.lock`.
3. Keep the workflows as-is (`uv sync --frozen --all-groups` + `uv run ruff ...`).
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
Summary
Verification