Skip to content

fix(ci): base compose stack on hstore topology - #30

Merged
imbajin merged 2 commits into
hugegraph:masterfrom
bitflicker64:fix/compose-hstore-base
Sep 3, 2026
Merged

fix(ci): base compose stack on hstore topology#30
imbajin merged 2 commits into
hugegraph:masterfrom
bitflicker64:fix/compose-hstore-base

Conversation

@bitflicker64

@bitflicker64 bitflicker64 commented Sep 3, 2026

Copy link
Copy Markdown
Member

Problem

The strict-mode build_test_publish_multiarch job fails on master at Start compose stack with local images. pd and store exit about a second after starting:

hg-pd    | ERROR: missing required env 'HG_PD_GRPC_HOST'
hg-store | ERROR: missing required env 'HG_STORE_PD_ADDRESS'
container hg-pd exited (2)

apache/hugegraph#3149 (98477f0, 2026-08-31 08:12 UTC) reworked the docker/ directory. docker/docker-compose.dev.yml is now a thin build overlay for the HStore topology and carries only image:, build: and a start_period per service. The HG_PD_*, HG_STORE_* and HG_SERVER_* settings, the network and the published ports all moved to the new docker/docker-compose-hstore.yml.

The compose file selection here still treats docker-compose.dev.yml as a complete stack, so the job starts the overlay on its own and pd and store come up with nothing configured. Upstream documents the two files as a pair in docker/README.md.

Starting dev.yml alone leaves pd and store with no HG_PD_GRPC_HOST or HG_STORE_PD_ADDRESS; layering docker-compose-hstore.yml underneath supplies them

Worth noting that hg-server still reported healthy in the failing run. Its image healthcheck only curls /versions, so it passed while the container sat on "Waiting for partition assignment...".

Fix

Prefer docker/docker-compose-hstore.yml as the base topology and layer the dev file on top when both are present. Source revisions that still ship a self-contained dev file keep working through the existing fallback, as do revisions with only docker/docker-compose.yml.

This also unblocks the later steps, which curl 127.0.0.1:8620 and 127.0.0.1:8520. Only docker-compose-hstore.yml publishes those ports.

Provenance

The fix is @imbajin's. It is ported from e2e52c0 on the topling-runtime-variant branch of #28, dropping the one hunk that patches the "Restart integration stack and verify persistence" step, which does not exist on master. 85de017 from that branch is not included: it renames volumes inside a volumes: !override block that #28 introduces, and master has no such block.

Raised as a separate PR only because master is red now and #28 is a feature. Happy to close this if you would rather land #28 whole.

Impact

Scheduled latest publish on master since the upstream change:

  • 2026-09-01 01:45 UTC, run 33459952079, failure
  • 2026-09-02 00:57 UTC, run 33577399138, failure
  • 2026-09-03 01:02 UTC, run 33702008125, failure

Last green run on master was 2026-08-31 01:19 UTC, about seven hours before apache/hugegraph#3149 merged. The successful publishes in between were dispatched from the topling-runtime-variant branch, which already carries the fix.

Verification

Locally: the file parses as YAML and the three modified run: blocks pass bash -n. Not yet exercised end to end. A workflow_dispatch run against this branch is the real check, and I do not have dispatch rights here.

Summary by CodeRabbit

  • 改进
    • 发布流程现在优先支持 HStore 与开发环境配置组合使用。
    • Docker Compose 操作会自动应用检测到的基础配置和可选开发覆盖配置。
    • 同时继续支持自包含开发配置或传统配置文件布局。
    • 配置文件缺失时,错误提示会明确列出支持的组合方式。

Copilot AI lite review requested due to automatic review settings September 3, 2026 04:01
@coderabbitai

coderabbitai Bot commented Sep 3, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: d4cff25c-618a-4e41-b649-d74938c7db76

📥 Commits

Reviewing files that changed from the base of the PR and between 6aefd77 and 2f46a7b.

📒 Files selected for processing (1)
  • .github/workflows/_publish_pd_store_server_reusable.yml
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/_publish_pd_store_server_reusable.yml

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


Walkthrough

工作流优先组合 HStore 基础 Compose 文件和开发覆盖文件。组合参数用于启动、状态检查、失败日志收集和停止操作。旧的自包含开发文件和 legacy 文件布局仍受支持。

Changes

Compose 文件组合支持

Layer / File(s) Summary
Compose 文件选择与环境变量
.github/workflows/_publish_pd_store_server_reusable.yml
当 HStore 文件和开发文件同时存在时,工作流将 HStore 文件设为基础文件,并将开发文件设为覆盖文件。工作流新增 COMPOSE_DEV_FILE 环境变量,并保留旧布局的回退逻辑。
Compose 生命周期命令组合
.github/workflows/_publish_pd_store_server_reusable.yml
uppslogsdown 命令通过 compose_args 条件性加入开发覆盖文件,并继续合并 CI 覆盖文件。

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: ⚪ Minimal · up to 2f46a

CI now pairs the HStore base Compose topology with the development overlay while retaining legacy Compose fallbacks. No concrete merge-blocking risk is identified.

Poem

小兔检查 Compose 文件,
HStore 铺好基础线。
dev 覆盖轻轻落下,
启动、日志、停止都不差。
参数一路紧相随,
工作流顺利向前飞。

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 标题明确概括了主要变更:将 CI compose stack 的基础拓扑切换为 HStore。标题与 PR 目标和文件变更一致,且简洁具体。
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

apache/hugegraph#3149 reworked the docker directory and turned
docker/docker-compose.dev.yml into a thin build overlay for the HStore
topology. That file no longer defines environment, networks or ports on
its own, so starting it alone leaves pd and store unconfigured:

  hg-pd    | ERROR: missing required env 'HG_PD_GRPC_HOST'
  hg-store | ERROR: missing required env 'HG_STORE_PD_ADDRESS'

Both containers exit immediately and the strict-mode job fails at
"Start compose stack with local images". The scheduled latest publish
has failed on master every night since that change landed.

Use docker/docker-compose-hstore.yml as the base topology and layer the
dev file on top when both are present. Source revisions that still ship
a self-contained dev file keep working through the existing fallback.

Ported from e2e52c0 on the topling-runtime-variant branch of hugegraph#28,
without the hunk for the restart-persistence step, which does not exist
on master.

Co-authored-by: dark <jin@apache.org>
@bitflicker64
bitflicker64 force-pushed the fix/compose-hstore-base branch from 6d37387 to 6aefd77 Compare September 3, 2026 04:02

Copilot AI 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.

🟢 Approval recommended

The compose file layering logic is straightforward and consistent across start/logs/teardown, addressing the reported CI failure without introducing high-risk workflow behavior changes.

Pull request overview

Updates the shared PD/Store/Server reusable workflow to start the HugeGraph integration compose stack using the newer HStore topology layout (base docker-compose-hstore.yml plus the docker-compose.dev.yml overlay), fixing strict-mode failures after upstream split the configuration across two compose files.

Changes:

  • Prefer docker/docker-compose-hstore.yml as the base compose file and layer docker/docker-compose.dev.yml on top when both exist.
  • Export a new COMPOSE_DEV_FILE env var and thread the optional second -f through compose up/ps/logs/down invocations.
File summaries
File Description
.github/workflows/_publish_pd_store_server_reusable.yml Adjusts compose file selection and docker compose invocation so strict-mode integration uses the correct HStore base topology + overlay.
Review details
  • Files reviewed: 1/1 changed files
  • Comments generated: 1
  • Review effort level: Lite

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

Comment thread .github/workflows/_publish_pd_store_server_reusable.yml
- document the HStore base and dev overlay pairing
- retain legacy self-contained dev file guidance
- keep runtime selection behavior unchanged

@imbajin imbajin left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Verified exact head 2f46a7b with the full multi-platform build and lifecycle run: https://github.com/hugegraph/actions/actions/runs/33715470077. No blocking issues remain.

@imbajin
imbajin merged commit 81bf2ec into hugegraph:master Sep 3, 2026
4 checks passed
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