Skip to content

CI: consolidate Rocky 8/9/10 workflows into single matrix-driven file#1857

Open
tuhaihe wants to merge 4 commits into
apache:mainfrom
tuhaihe:refactor-ci-rocky2607
Open

CI: consolidate Rocky 8/9/10 workflows into single matrix-driven file#1857
tuhaihe wants to merge 4 commits into
apache:mainfrom
tuhaihe:refactor-ci-rocky2607

Conversation

@tuhaihe

@tuhaihe tuhaihe commented Jul 21, 2026

Copy link
Copy Markdown
Member

Replace three separate Rocky Linux CI workflow files with one matrix-driven workflow that runs build + test across Rocky 8, 9, 10.

Key changes:

  • New file: .github/workflows/build-cloudberry-rocky.yml
  • Remove: build-cloudberry.yml (Rocky 9), build-cloudberry-rocky8.yml, build-cloudberry-rocky10.yml
  • PR trigger: all three Rocky versions now run on every PR (was only Rocky 9 before; Rocky 8/10 only triggered on push to main)
  • Remove scheduled cron trigger (push + PR coverage is sufficient)
  • Test matrix: union of all test suites across versions; every test now runs on every Rocky version, including ic-recovery, ic-diskquota, ic-orca-parallel, and gp_relsizes_stats
  • Container images and --releasever now resolved dynamically via matrix.rocky_version
  • Artifact names consistently suffixed with -rocky${{ version }}

See: http://github.com/apache/cloudberry/discussions/1696
Assisted-by: Deepseek

Fixes #ISSUE_Number

What does this PR do?

Type of Change

  • Bug fix (non-breaking change)
  • New feature (non-breaking change)
  • Breaking change (fix or feature with breaking changes)
  • Documentation update

Breaking Changes

Test Plan

  • Unit tests added/updated
  • Integration tests added/updated
  • Passed make installcheck
  • Passed make -C src/test installcheck-cbdb-parallel

Impact

Performance:

User-facing changes:

Dependencies:

Checklist

Additional Context

CI Skip Instructions


tuhaihe added 3 commits July 21, 2026 12:35
Replace three separate Rocky Linux CI workflow files with one
matrix-driven workflow that runs build + test across Rocky 8, 9, 10.

Key changes:
- New file: .github/workflows/build-cloudberry-rocky.yml
- Remove: build-cloudberry.yml (Rocky 9), build-cloudberry-rocky8.yml,
  build-cloudberry-rocky10.yml
- PR trigger: all three Rocky versions now run on every PR (was only
  Rocky 9 before; Rocky 8/10 only triggered on push to main)
- Remove scheduled cron trigger (push + PR coverage is sufficient)
- Test matrix: union of all test suites across versions; every test
  now runs on every Rocky version, including ic-recovery, ic-diskquota,
  ic-orca-parallel, and gp_relsizes_stats
- Container images and --releasever now resolved dynamically via
  matrix.rocky_version
- Artifact names consistently suffixed with -rocky${{ version }}

See: http://github.com/apache/cloudberry/discussions/1696
Assisted-by: Deepseek
@tuhaihe
tuhaihe marked this pull request as ready for review July 23, 2026 09:06
@tuhaihe

tuhaihe commented Jul 23, 2026

Copy link
Copy Markdown
Member Author

Now it's ready to be reviewed. It will take a similar amount of time to run all tests compared to Rocky 8, 9, and 10 separately, but it will exceed ~10 minutes if some tests fail. I think it's not too long, so we can accept.

cc @leborchuk PTAL.

Copilot AI left a comment

Copy link
Copy Markdown

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 updates the Rocky Linux CI to run build + install + test across Rocky 8/9/10 using a matrix approach, reducing duplication from having separate per-version workflow files.

Changes:

  • Expands the existing Rocky workflow to run build, rpm-install-test, and test on Rocky 8/9/10 via matrix-driven container images and dnf --releasever.
  • Builds a cross-joined test matrix so each test suite runs on each selected Rocky version.
  • Removes the dedicated Rocky 8 and Rocky 10 workflow files.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

File Description
.github/workflows/build-cloudberry.yml Consolidates Rocky 8/9/10 execution into a single workflow with per-version matrices and updated artifact naming.
.github/workflows/build-cloudberry-rocky8.yml Deleted in favor of the consolidated Rocky workflow.
.github/workflows/build-cloudberry-rocky10.yml Deleted in favor of the consolidated Rocky workflow.
Comments suppressed due to low confidence (1)

.github/workflows/build-cloudberry.yml:787

  • Same issue as the build job: rocky_version: [8, 9, 10] defines numeric values, but the job name expression compares matrix.rocky_version to the string '9', so the conditional name won’t trigger.
    strategy:
      fail-fast: false
      matrix:
        rocky_version: [8, 9, 10]

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/build-cloudberry.yml
Comment thread .github/workflows/build-cloudberry.yml Outdated
Comment thread .github/workflows/build-cloudberry.yml
Comment thread .github/workflows/build-cloudberry.yml
@leborchuk

Copy link
Copy Markdown
Contributor

Now it's ready to be reviewed. It will take a similar amount of time to run all tests compared to Rocky 8, 9, and 10 separately, but it will exceed ~10 minutes if some tests fail. I think it's not too long, so we can accept.

cc @leborchuk PTAL.

Is it possible to write step names in the same format?

I mean I see in CI

Build RPM (Rocky 8)
Build Apache Cloudberry RPM
Build RPM (Rocky 10)

But want to see

Build RPM (Rocky 8)
Build RPM (Rocky 9)
Build RPM (Rocky 10)

I understand that Build Apache Cloudberry RPM most probably for default OS which is Rocky Linux 9, but it will be great do not guess version, get it from the step name

@leborchuk

Copy link
Copy Markdown
Contributor

Now it's ready to be reviewed. It will take a similar amount of time to run all tests compared to Rocky 8, 9, and 10 separately, but it will exceed ~10 minutes if some tests fail. I think it's not too long, so we can accept.
cc @leborchuk PTAL.

Is it possible to write step names in the same format?

I mean I see in CI

Build RPM (Rocky 8)
Build Apache Cloudberry RPM
Build RPM (Rocky 10)

But want to see

Build RPM (Rocky 8)
Build RPM (Rocky 9)
Build RPM (Rocky 10)

I understand that Build Apache Cloudberry RPM most probably for default OS which is Rocky Linux 9, but it will be great do not guess version, get it from the step name

Oh, see it for match with '.asf.yaml' settings - let's stay it as-is

@leborchuk leborchuk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

See the overall status like

[Build RPM (Rocky 8) summary](https://github.com/apache/cloudberry/actions/runs/29888943375#summary-88825366080)
Build Job Summary (Rocky 8)
Environment
Start Time: 2026-07-22 03:40:13 UTC
ENABLE_DEBUG: false
OS Version: Rocky Linux release 8.10 (Green Obsidian)
GCC Version: gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-28)
Build Results
End Time: 2026-07-22 03:50:48 UTC
[Job summary generated at run-time](https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary)
[Build Apache Cloudberry RPM summary](https://github.com/apache/cloudberry/actions/runs/29888943375#summary-88825366052)
Build Job Summary (Rocky 9)
Environment
Start Time: 2026-07-22 03:43:42 UTC
ENABLE_DEBUG: false
OS Version: Rocky Linux release 9.7 (Blue Onyx)
GCC Version: gcc (GCC) 11.5.0 20240719 (Red Hat 11.5.0-11)
Build Results
End Time: 2026-07-22 03:52:37 UTC
[Job summary generated at run-time](https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary)
[Build RPM (Rocky 10) summary](https://github.com/apache/cloudberry/actions/runs/29888943375#summary-88825366076)
Build Job Summary (Rocky 10)
Environment
Start Time: 2026-07-22 03:41:17 UTC
ENABLE_DEBUG: false
OS Version: Rocky Linux release 10.1 (Red Quartz)
GCC Version: gcc (GCC) 14.3.1 20250617 (Red Hat 14.3.1-2)
Build Results
End Time: 2026-07-22 03:54:12 UTC

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants