Skip to content

HBASE-30465: Create a test report summary similar to the HBase Nightly tests - #8746

Open
kgeisz wants to merge 2 commits into
apache:HBASE-30087from
kgeisz:HBASE-30465-create-minimal-read-replica-console-report
Open

kgeisz wants to merge 2 commits into
apache:HBASE-30087from
kgeisz:HBASE-30465-create-minimal-read-replica-console-report

Conversation

@kgeisz

@kgeisz kgeisz commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

https://issues.apache.org/jira/browse/HBASE-30465

Summary

This pull request updated the HTML report for Read-Replica integration tests run with Jenkins. Before, the HTML report was generated directly from pytest. This information was useful, but it did not match the Console reports displayed by other Jenkins runs, such as the HBase Nightly tests.

  • When all tests have passed, a +1 is shown along with a brief summary of what was run:
Screenshot 2026-10-06 at 3 37 07 PM
  • When a test has failed, it is considered a -1, and the failing tests are listed along with a link to the logs for each test (all tests are reran up to two times):
Screenshot 2026-10-06 at 9 04 27 AM
  • If all tests pass, but some were reran, those tests are listed and the logs are linked. The text is in yellow, but pytest still gives a +1 vote (no example image).
  • If a test fails and another test is reran but eventually passes, then only the failing test is listed in the summary and has a link to its logs (no example image).

Additional Details

  1. Added dev-support/read-replica/python/scripts/render_console_report.py for generating a minimal console report that's similar to HBase Nightly's console report. This report include a vote value, run time, comment, and relevant logs (if applicable) for each subsystem that's run.
  2. Added dev-support/read-replica/python/test/conftest.py. This is a special pytest file capable of defining fixtures and hooks picked up by pytest automatically. In this case, the file is used to save unit test and HBase logs after each test is ran or reran.
  3. Added tracking the build time for the test environment image that's built using dev-support/docker/Dockerfile
  4. HBase logs are now saved after each unit test for reference. A mounted volume has been added to dev-support/read-replica/docker-compose.yml

…y tests

Change-Id: I1a580f3d781c80a2b5d75c05f727b3d5901bbc6e

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.

Copilot review overview

🟡 Changes recommended

Log-directory permissions and report vote/detail logic can cause test startup failures or inaccurate summaries.

Review effort: Balanced
Findings: 1 High severity · 2 Medium severity

Open (3)
What changed in this PR

Adds a Yetus-style Jenkins report for read-replica integration tests, including timing, rerun details, and archived logs.

Changes:

  • Replaces pytest-html output with a custom console report.
  • Captures per-test Python and HBase logs.
  • Tracks build-stage timing and publishes the new report through Jenkins.
File Description
.dockerignore Reduces root Docker context.
dev-support/​read-replica/​.dockerignore Excludes generated test artifacts.
dev-support/​read-replica/​.env Defines cluster log directories.
dev-support/​read-replica/​Jenkinsfile Publishes and links the console report.
dev-support/​read-replica/​README.md Documents new report outputs.
dev-support/​read-replica/​docker-compose.yml Mounts cluster log directories.
dev-support/​read-replica/​hbase_nightly_read_replica_test.sh Passes timing and log URLs.
dev-support/​read-replica/​requirements.txt Removes pytest-html dependencies.
dev-support/​read-replica/​run_read_replica_integration_tests.sh Generates timing data and the report.
dev-support/​read-replica/​python/​test/​conftest.py Captures per-attempt logs.
dev-support/​read-replica/​python/​scripts/​render_console_report.py Builds the HTML summary.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread dev-support/read-replica/python/test/conftest.py Outdated
Comment thread dev-support/read-replica/python/scripts/render_console_report.py Outdated
Comment thread dev-support/read-replica/python/scripts/render_console_report.py Outdated

@taklwu taklwu 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.

few minor changes required, otherwise looks very good!

Comment thread dev-support/read-replica/python/scripts/render_console_report.py Outdated
Comment thread dev-support/read-replica/python/scripts/render_console_report.py Outdated
from pathlib import Path


@dataclass

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.

nit: the more we wrote here, the junit migration for all tests keep popping up in my mind

Comment thread dev-support/read-replica/python/test/conftest.py
Comment thread dev-support/read-replica/python/test/conftest.py Outdated
Change-Id: Ib677feac4f30cbd4e6056d317cc3611035ab9326
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