Skip to content

CI: run the Behave suites on Rocky 8, 9 and 10 - #2232

Draft
tuhaihe wants to merge 1 commit into
apache:mainfrom
tuhaihe:behave-rocky-matrix
Draft

tuhaihe wants to merge 1 commit into
apache:mainfrom
tuhaihe:behave-rocky-matrix

Conversation

@tuhaihe

@tuhaihe tuhaihe commented Nov 3, 2026

Copy link
Copy Markdown
Member

The Behave workflow built and tested on Rocky Linux 9 only. gpMgmt is Python and shell, so many of its problems depend on the OS: the Python version, ssh and rsync behavior, and system packages. Rocky 8 ships Python 3.6 and Rocky 10 ships Python 3.12, so neither is covered today.

Build one RPM per OS, and run every selected suite on every selected OS. A full run is now 3 builds and 51 Behave jobs. The job and artifact names carry the OS, so the three OSes do not overwrite each other's results. A new os_selection input lets a manual run pick the OSes, the same way test_selection picks the suites.

If the build for one OS fails, the suites for the other OSes still run. Only the suites of the failed OS fail, at the artifact download.

The build job is renamed to "Build Behave RPM ()". .asf.yaml requires a check named "Build Apache Cloudberry RPM", and that check belongs to build-cloudberry.yml, not to this workflow.

Two problems stopped the workflow from working on Rocky 10:

  • The RPM file name took one digit of VERSION_ID, so Rocky 10 ("10.0") gave "el1" and the copy failed. Take all the leading digits.
  • The RPM install used --releasever=9 for every OS. Take the release from the OS name.

Assisted-by: Claude Code

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


The Behave workflow built and tested on Rocky Linux 9 only. gpMgmt is
Python and shell, so many of its problems depend on the OS: the Python
version, ssh and rsync behavior, and system packages. Rocky 8 ships
Python 3.6 and Rocky 10 ships Python 3.12, so neither is covered today.

Build one RPM per OS, and run every selected suite on every selected
OS. A full run is now 3 builds and 51 Behave jobs. The job and
artifact names carry the OS, so the three OSes do not overwrite each
other's results. A new os_selection input lets a manual run pick the
OSes, the same way test_selection picks the suites.

If the build for one OS fails, the suites for the other OSes still
run. Only the suites of the failed OS fail, at the artifact download.

The build job is renamed to "Build Behave RPM (<os>)". .asf.yaml
requires a check named "Build Apache Cloudberry RPM", and that check
belongs to build-cloudberry.yml, not to this workflow.

Two problems stopped the workflow from working on Rocky 10:

* The RPM file name took one digit of VERSION_ID, so Rocky 10 ("10.0")
  gave "el1" and the copy failed. Take all the leading digits.
* The RPM install used --releasever=9 for every OS. Take the release
  from the OS name.

Assisted-by: Claude Code
@tuhaihe tuhaihe added this to the Behave tests milestone Nov 3, 2026
@tuhaihe

tuhaihe commented Nov 3, 2026

Copy link
Copy Markdown
Member Author

Will rebase on #2230.

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.

1 participant