Replies: 1 comment
-
|
We are currently adding Rocky 10 development container images to our infrastructure (led by @leborchuk ). For the initial Rocky 10 support, we can continue with the existing pattern of creating a separate workflow file ( This allows us to:
Once Rocky 10 support is stable and any required code changes are complete, we can proceed with the consolidation effort. This phased approach reduces risk and allows us to tackle one challenge at a time. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Proposers
@tuhaihe
Proposal Status
Under Discussion
Abstract
This proposal suggests consolidating our current four separate CI workflow files (Rocky 8, Rocky 9, Ubuntu 22.04, Ubuntu 24.04 -
coming Rocky 10) into two unified workflows using GitHub Actions matrix strategy - one for RPM-based distributions and one for DEB-based distributions.Motivation
This consolidation aligns with GitHub Actions best practices and will make our CI infrastructure more maintainable and scalable without increasing PR validation time. The matrix strategy is specifically designed for this use case.
This consolidation is now feasible because our project has evolved to use unified build scripts (
devops/build/automation/cloudberry/scripts/) that work consistently across different OS versions, rather than requiring OS-specific configurations. The workflows primarily differ only in the container images used, making them ideal candidates for matrix strategy.Implementation
Current State
We currently maintain four separate workflow files:
build-cloudberry.ymlbuild-cloudberry-rocky8.ymlbuild-deb-cloudberry.ymlbuild-deb-cloudberry-ubuntu24.04.ymlIssues with Current Approach
Code Duplication: The Rocky 8/9 workflows are nearly identical (~1,900 lines each), as are the Ubuntu 22.04/24.04 workflows (~1,900 lines each). This leads to:
Inconsistent PR Coverage: Rocky 8 and Ubuntu 24.04 are not tested during PR reviews, potentially missing compatibility issues until after merge.
Scalability: Adding more newer OS version support would require creating yet another ~1,000 line workflow file.
Proposed Solution
Consolidate into two matrix-based workflows:
1.
build-cloudberry-rpm.yml(RPM-based distributions)2.
build-cloudberry-deb.yml(DEB-based distributions)Benefits
1. No Increase in PR CI Time. GitHub Actions matrix jobs run in parallel, not sequentially. Same total time, more coverage
2. Reduced Maintenance Burden. When updating test configurations, changes only need to be made once per package type (RPM/DEB) instead of twice.
3. Better Test Coverage. All supported OS versions will be tested on every PR, catching compatibility issues earlier in the development cycle.
4. Easier to Scale.
Adding Rocky 10 support becomes trivial:
5. Consistency Guaranteed. Since all OS versions use the same workflow logic, they're guaranteed to run identical tests with identical configurations (except for OS-specific differences).
Rollout/Adoption Plan
Love to hear your thoughts and feedback!
Are you willing to submit a PR?
Beta Was this translation helpful? Give feedback.
All reactions