-
Notifications
You must be signed in to change notification settings - Fork 7
Chore/styx GitHub actions #7
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
base: KAVR_12182025
Are you sure you want to change the base?
Conversation
- Move .pre-commit-config.yaml, .pylintrc, and CONTRIBUTING.md to superconducting/ - Update pyproject.toml to reference .pylintrc in same directory - Update CONTRIBUTING.md with correct repository paths This consolidates all configuration files at the same level as pyproject.toml for better organization and easier maintenance.
Pylint automatically discovers .pylintrc in the same directory, so the [tool.pylint.main] section is unnecessary.
Add standard Python project exclusions including: - Virtual environments (.venv/, venv/) - Python cache files (*.pyc, __pycache__/) - Test artifacts (.coverage, htmlcov/) - IDE files (.vscode/, .idea/, .DS_Store) - Build artifacts (dist/, build/, *.egg-info/) - Tool caches (.mypy_cache/, .ruff_cache/, .pre-commit-cache/) Note: uv.lock is intentionally tracked for reproducible builds.
Add comprehensive CI workflow that: - Runs on push to master, styx-ci-cd, and KAVR_12182025 branches - Triggers on pull requests to master, styx-ci-cd, and KAVR_12182025 - Tests on Python 3.10, 3.11, and 3.12 - Uses uv for fast dependency installation - Runs pre-commit hooks on changed files only (not all files) - Runs pytest with coverage reporting - Uploads coverage to Codecov for Python 3.12 The workflow uses --from-ref and --to-ref to run pre-commit only on changed files in the current commit/PR, not the entire codebase.
Create initial test suite with: - test_imports.py: Verify all main packages can be imported - test_sanity.py: Basic sanity tests to verify test infrastructure - __init__.py: Mark tests as a proper Python package Also update .pre-commit-config.yaml to: - Remove explicit --rcfile argument (pylint finds .pylintrc automatically) - Exclude tests/ directory from pylint checks This provides a foundation for the test suite and allows CI to run successfully. The tests verify that: - Core packages (calibrations, quam_config, calibration_utils) can be imported - Key dependencies are available - Python version is 3.10+ - Basic pytest functionality works
OziEgri
left a comment
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.
Was it tested E2E yet?
|
@OziEgri Yes, you can see here the logs of the workflow runs with github acttions on the /chore/styx--github-actions branch https://github.com/qua-platform/CS_installations/actions |
OziEgri
left a comment
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.
LGTM
Summary
Add comprehensive CI/CD automation using GitHub Actions and establish foundational test infrastructure for the superconducting calibrations project.
Changes
🚀 GitHub Actions CI Workflow (
.github/workflows/ci.yml)Triggers:
master,styx-ci-cd,KAVR_12182025branchesmaster,styx-ci-cd,KAVR_12182025Features:
uvwith caching for ~10x faster installs--from-refand--to-reffor efficient diff-based checking🧪 Test Infrastructure (
tests/)New test files:
test_sanity.py- Basic infrastructure tests:test_imports.py- Package import verification:Pre-commit configuration updates:
tests/from pylint checks (avoids false positives on test patterns)--rcfileargument (pylint auto-discovers.pylintrc)