Skip to content

Create separate Jenkinsfile for Read-Replica feature - #8676

Open
kgeisz wants to merge 4 commits into
apache:HBASE-30087from
kgeisz:HBASE-30087-read-replica-jenkinsfile-test
Open

kgeisz wants to merge 4 commits into
apache:HBASE-30087from
kgeisz:HBASE-30087-read-replica-jenkinsfile-test

Conversation

@kgeisz

@kgeisz kgeisz commented Sep 17, 2026

Copy link
Copy Markdown
Contributor
  • Removes Read-Replica stage from dev-support/Jenkinsfile
  • Creates a new dev-support/read-replica/Jenkinsfile for running the read-replica integration tests
  • Moves dev-support/hbase_nightly_read_replica_test.sh -> dev-support/read-replica/hbase_nightly_read_replica_test.sh
  • Updates paths in hbase_nightly_read_replica_test.sh accordingly since the script was moved
  • Removes SCRIPT_DIR variable from hbase_nightly_read_replica_test.sh since it is now redundant with REPLICA_DIR variable
  • Updates documentation in dev-support/README.md and dev-support/read-replica/README.md

…ad-replica/hbase_nightly_read_replica_test.sh

Change-Id: I39075ee08ed7c07fac4432015037b35411e5f50b
…v-support/read-replica/Jenkinsfile

Change-Id: Ie2b915eb663c90f64db2fc7a5eec213e59ac525d
Change-Id: I942e63f85f314661bf5052abee227d96063b6210
…rt/read-replica/.env file

Change-Id: Ib71188aab47e2e42f254125e271b31201a4f1756
# are running locally. If they are started by another container, such as a Jenkins
# container in a Docker-out-of-Docker setup, then try setting this to host.docker.internal.
HBASE_HOST=${HBASE_HOST:-localhost}
HBASE_HOST=${HBASE_HOST:-host.docker.internal}

@kgeisz kgeisz Sep 17, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@taklwu this needs to be set to host.docker.internal in order to get it running in my local Jenkins setup. We will see how this goes with the upstream Jenkins.

HBASE_HOST is used for curling the HBase UI to see if it's up. It's part of the process of verifying HBase has started. (here it is in the code)

The only problem with this is if I want to run the tests locally with hbase_nightly_read_replica_test.sh (without Jenkins) then HBASE_HOST should be localhost. We may want to think of a way to make it easier for a user to run this without having to know they should modify HBASE_HOST to make it localhost.

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.

can we use something like hostname -a then it could auto detect the hostname ?

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.

seems like you can use it in build-images.sh line #21 and overwrite the hostname? or is it how the .env is being used?

. ./.env

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.

🟡 Changes recommended

The standalone pipeline does not preserve scheduling, branch, and executor constraints, and the new host default breaks documented local execution.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Separates read-replica integration testing from the main HBase nightly Jenkins pipeline.

Changes:

  • Adds a standalone read-replica Jenkins pipeline.
  • Relocates the test driver and updates repository-relative paths.
  • Updates supporting configuration and documentation.
File summaries
File Description
dev-support/Jenkinsfile Removes read-replica stages and result handling.
dev-support/read-replica/Jenkinsfile Defines the standalone pipeline.
dev-support/read-replica/hbase_nightly_read_replica_test.sh Updates paths after relocation.
dev-support/read-replica/.env Changes the default Docker host.
dev-support/README.md Documents the new layout.
dev-support/read-replica/README.md Updates CI and invocation documentation.
Review details
  • Files reviewed: 6/6 changed files
  • Comments generated: 4
  • Review effort level: Balanced

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

environment {
OUTPUT_DIR_RELATIVE_READ_REPLICA = 'output-read-replica'
}
stages {
# are running locally. If they are started by another container, such as a Jenkins
# container in a Docker-out-of-Docker setup, then try setting this to host.docker.internal.
HBASE_HOST=${HBASE_HOST:-localhost}
HBASE_HOST=${HBASE_HOST:-host.docker.internal}
// specific language governing permissions and limitations
// under the License.
pipeline {
agent any
stash name: 'read-replica-result', allowEmpty: true, includes: "${OUTPUT_DIR_RELATIVE_READ_REPLICA}/doesn't-match"
}
}
stage ('hbase read-replica feature checks') {
# are running locally. If they are started by another container, such as a Jenkins
# container in a Docker-out-of-Docker setup, then try setting this to host.docker.internal.
HBASE_HOST=${HBASE_HOST:-localhost}
HBASE_HOST=${HBASE_HOST:-host.docker.internal}

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.

seems like you can use it in build-images.sh line #21 and overwrite the hostname? or is it how the .env is being used?

. ./.env

# under the License.

# The name of the HBase Docker image
HBASE_IMAGE=${HBASE_IMAGE:-kgeisz/hbase-docker:read-replica-jenkins}

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.

so, are we always use default? or kgeisz is being used?

I'm thinking if we should make it more like default instead of using a user like prefix.

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