-
Notifications
You must be signed in to change notification settings - Fork 294
ci: Truncate the # of concurrent jobs in PR CI #5122
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
Thoughts on moving Potentially also moving tests/ai out? |
I'm ok with it, adding |
The failing test is the flaky one |
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.
Greptile Summary
This PR optimizes the GitHub Actions CI pipeline to reduce concurrent job count from approximately 30 jobs to a much smaller number, addressing GitHub Actions concurrency limits (60 total jobs, 5 macOS runners). The changes include several key optimizations:
CI Workflow Restructuring: The main workflow file (.github/workflows/pr-test-suite.yml
) has been significantly refactored to consolidate repetitive integration test jobs. Previously separate jobs for iceberg, unity, and delta-lake tests have been combined into a single integration-test-catalogs
job that runs tests sequentially rather than in parallel matrices. Similarly, TPCH and SQL integration tests have been converted from matrix-based execution to sequential execution with hardcoded configurations.
Python Version Matrix Reduction: Unit tests now only run on Python 3.9 (oldest supported) and 3.12 (newest widely supported) instead of the previous 3.9, 3.10, and 3.11, reducing the test matrix size while maintaining coverage of the critical version boundaries.
Test Directory Reorganization: Delta Lake integration tests have been moved from tests/io/delta_lake/
to tests/integration/delta_lake/
to better categorize them as integration tests and support the consolidated CI job structure. This includes moving conftest.py
, test_table_read.py
, test_table_write.py
, test_table_read_pushdowns.py
, and utils.py
, along with creating the necessary __init__.py
package marker.
Infrastructure Improvements: The Unity Catalog test configuration now supports configurable ports through the UNITY_CATALOG_PORT
environment variable, enabling parallel test execution without port conflicts. The workflow also includes fixes to skip check logic and updates to Slack notification conditions.
Platform-Specific Optimizations: macOS testing has been removed for the old Ray runner (flotilla: 0) to reduce resource consumption on the limited macOS runner pool.
These changes maintain essential test coverage while dramatically reducing CI resource consumption, allowing multiple PRs to run simultaneously without hitting GitHub Actions throttling limits.
Confidence score: 4/5
- This PR appears safe to merge with careful monitoring of CI performance
- Score reflects the complexity of CI workflow changes that could potentially affect test coverage or execution
- Pay close attention to the workflow file changes and test reorganization to ensure no tests are accidentally dropped
8 files reviewed, 1 comment
- daft-runner: native | ||
flotilla: 1 | ||
flotilla: 0 |
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.
logic: The exclusion logic appears inverted - this excludes native with flotilla: 0, but line 96 excludes macOS with flotilla: 0. Should native be excluded with flotilla: 1 instead?
- daft-runner: native | |
flotilla: 1 | |
flotilla: 0 | |
- daft-runner: native | |
flotilla: 1 |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5122 +/- ##
==========================================
- Coverage 76.54% 71.88% -4.66%
==========================================
Files 953 951 -2
Lines 130653 130473 -180
==========================================
- Hits 100006 93797 -6209
- Misses 30647 36676 +6029 🚀 New features to boost your workflow:
|
Changes Made
Right now, PR CI can have up ~30 active jobs at a time. Our plan limits GitHub Actions concurrency to 60, so we're starting to see throttling when there are multiple PRs at the same time. Furthermore, we're limited to 5 macOS runners at a time, and each PR CI needs 3.
A lot of the integration tests jobs are short and do a lot of repetitive work, so I combined them. In addition, I trimmed down the unit tests to only test 3.9 (the oldest) and 3.12 (the newest that all libraries support) Python versions. Lastly, I removed macOS tests for the old Ray runner.
Checklist
docs/mkdocs.yml
navigation