-
Notifications
You must be signed in to change notification settings - Fork 11
Modernize and consolidate GitHub workflows #792
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
c0094f2 to
737e74e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR modernizes the pytest CI workflow by replacing pip with uv for Python package management. The change aligns with the project's local development tooling preference (as documented in AGENTS.md) and aims to provide faster dependency installation and better caching.
Changes:
- Replaced
actions/setup-pythonwithastral-sh/setup-uv@v5action for Python environment setup - Migrated all
pip installcommands touv pip install --system - Updated pytest execution to use
uv run --no-project
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #792 +/- ##
==========================================
- Coverage 95.26% 95.21% -0.05%
==========================================
Files 29 29
Lines 2384 2384
Branches 88 88
==========================================
- Hits 2271 2270 -1
- Misses 113 114 +1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
- Replace pip with uv for faster, more reliable dependency installation - Use astral-sh/setup-uv action with caching enabled - Use uv python install for Python setup - Use uv pip install --system for dependencies - Use uv run for pytest execution Also add self-referencing workflow paths to triggers so that changes to workflow files trigger their respective CI runs: - pytest.yaml - vitest.yaml - yarn.yaml Add [project] section to pyproject.toml with requires-python to fix uv warning: "No requires-python value found in the workspace" Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
737e74e to
4490aa7
Compare
for more information, see https://pre-commit.ci
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
uv.lock is generated when using uv for project management, but we only use uv as a pip replacement for faster package installs. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Not needed since we only use uv as a pip replacement, not for project management. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
uv pip install --system requires a system Python. Use actions/setup-python to provide it, then use uv just as a fast pip replacement. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Combine vitest.yaml and yarn.yaml into frontend.yaml with parallel jobs: - "Lint and Build" job (from yarn.yaml) - "Test" job (from vitest.yaml) - Rename pytest.yaml to python.yaml with workflow name "Python" - Standardize job names for consistent GitHub UI grouping: - Frontend: "Lint and Build", "Test" - Python: "Test" Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Rename python.yaml to integration.yaml - Move HACS and Hassfest validation into Integration workflow as parallel jobs - Delete standalone hacs.yaml and hassfest.yaml Integration workflow now has three parallel jobs: - Test (pytest) - HACS - Hassfest Note: auto-merge.yaml uses `gh pr checks --required` which automatically waits for all required checks - no job name references to update. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Merge release-drafter.yaml and auto-merge.yaml into a single repository.yaml workflow for better organization in GitHub UI. Both jobs retain their original concurrency settings at job level. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Allows small coverage decreases (up to 1%) without failing CI. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Distinct names allow proper branch protection configuration. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
pre-commit.ci skips yarn hooks due to missing Node.js. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
More explicit naming for the yarn-based lint and build job. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Proposed change
Modernize and consolidate CI workflows for better organization and faster execution.
Integration workflow (integration.yaml)
Consolidates Python testing with Home Assistant validation into three parallel jobs:
Frontend workflow (frontend.yaml)
Consolidates TypeScript CI into two parallel jobs:
Repository workflow (repository.yaml)
Consolidates repository automation into two jobs:
Removed workflows
pytest.yaml→ merged intointegration.yamlhacs.yaml→ merged intointegration.yamlhassfest.yaml→ merged intointegration.yamlvitest.yaml→ merged intofrontend.yamlyarn.yaml→ merged intofrontend.yamlrelease-drafter.yaml→ merged intorepository.yamlauto-merge.yaml→ merged intorepository.yamlOther changes
[project]section topyproject.tomlwithrequires-python = ">=3.13"uv.lockto.gitignoreruff-checkhook ID instead of legacyruffalias in pre-commitGitHub UI organization
Workflows now grouped logically:
Benefits
Type of change
Additional information
🤖 Generated with Claude Code