From 6aefd77c5a805a48a35e552cb4c4034d1dae7c05 Mon Sep 17 00:00:00 2001 From: Himanshu Verma Date: Thu, 3 Sep 2026 09:32:31 +0530 Subject: [PATCH 1/2] fix(ci): base compose stack on hstore topology 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 #28, without the hunk for the restart-persistence step, which does not exist on master. Co-authored-by: dark --- .../_publish_pd_store_server_reusable.yml | 38 ++++++++++++++++--- 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/.github/workflows/_publish_pd_store_server_reusable.yml b/.github/workflows/_publish_pd_store_server_reusable.yml index 213f490..086afb1 100644 --- a/.github/workflows/_publish_pd_store_server_reusable.yml +++ b/.github/workflows/_publish_pd_store_server_reusable.yml @@ -610,10 +610,20 @@ jobs: echo "HUGEGRAPH_ADMIN_PASSWORD=$HUGEGRAPH_ADMIN_PASSWORD" >> "$GITHUB_ENV" export HUGEGRAPH_ADMIN_PASSWORD - if [ -f "docker/docker-compose.dev.yml" ]; then + if [ -f "docker/docker-compose-hstore.yml" ] \ + && [ -f "docker/docker-compose.dev.yml" ]; then + # The current HugeGraph dev file is a thin HStore override. Keep the + # base topology in the command so its networks and named volumes are + # defined before the override is applied. + compose_file="docker/docker-compose-hstore.yml" + compose_dev_file="docker/docker-compose.dev.yml" + elif [ -f "docker/docker-compose.dev.yml" ]; then + # Older source revisions may still ship a self-contained dev file. compose_file="docker/docker-compose.dev.yml" + compose_dev_file="" elif [ -f "docker/docker-compose.yml" ]; then compose_file="docker/docker-compose.yml" + compose_dev_file="" echo "WARN: docker/docker-compose.dev.yml is unavailable; using legacy docker/docker-compose.yml" else echo "ERROR: no supported compose file found in $SOURCE_REPOSITORY@$SOURCE_SHA" @@ -621,6 +631,7 @@ jobs: exit 1 fi echo "COMPOSE_FILE=$compose_file" >> "$GITHUB_ENV" + echo "COMPOSE_DEV_FILE=$compose_dev_file" >> "$GITHUB_ENV" cat > /tmp/hg-ci-patch-server-config.sh <<'PATCH_SERVER' #!/usr/bin/env bash @@ -749,13 +760,18 @@ jobs: read_only: true COMPOSE_OVERRIDE + compose_args=(-f "$compose_file") + if [ -n "$compose_dev_file" ]; then + compose_args+=(-f "$compose_dev_file") + fi docker compose \ -p hg-ci-precheck \ - -f "$compose_file" \ + "${compose_args[@]}" \ -f /tmp/docker-compose.ci.override.yml \ up -d --wait --wait-timeout "$WAIT_TIMEOUT_SEC" - docker compose -p hg-ci-precheck -f "$compose_file" -f /tmp/docker-compose.ci.override.yml ps + docker compose -p hg-ci-precheck "${compose_args[@]}" \ + -f /tmp/docker-compose.ci.override.yml ps - name: Verify CI resource limits if: ${{ inputs.strict_mode }} @@ -882,8 +898,14 @@ jobs: if: ${{ failure() && inputs.strict_mode }} run: | if [ -n "${COMPOSE_FILE:-}" ] && [ -f /tmp/docker-compose.ci.override.yml ]; then - docker compose -p hg-ci-precheck -f "$COMPOSE_FILE" -f /tmp/docker-compose.ci.override.yml ps || true - docker compose -p hg-ci-precheck -f "$COMPOSE_FILE" -f /tmp/docker-compose.ci.override.yml logs --no-color --tail=200 || true + compose_args=(-f "$COMPOSE_FILE") + if [ -n "${COMPOSE_DEV_FILE:-}" ]; then + compose_args+=(-f "$COMPOSE_DEV_FILE") + fi + docker compose -p hg-ci-precheck "${compose_args[@]}" \ + -f /tmp/docker-compose.ci.override.yml ps || true + docker compose -p hg-ci-precheck "${compose_args[@]}" \ + -f /tmp/docker-compose.ci.override.yml logs --no-color --tail=200 || true else echo "Compose stack was not started; COMPOSE_FILE or CI override is unavailable" fi @@ -904,9 +926,13 @@ jobs: set -euo pipefail if [ -n "${COMPOSE_FILE:-}" ] && [ -f /tmp/docker-compose.ci.override.yml ]; then + compose_args=(-f "$COMPOSE_FILE") + if [ -n "${COMPOSE_DEV_FILE:-}" ]; then + compose_args+=(-f "$COMPOSE_DEV_FILE") + fi docker compose \ -p hg-ci-precheck \ - -f "$COMPOSE_FILE" \ + "${compose_args[@]}" \ -f /tmp/docker-compose.ci.override.yml \ down -v --remove-orphans else From 2f46a7b0830b308e1bea67ee3c3b869d1830a137 Mon Sep 17 00:00:00 2001 From: imbajin Date: Thu, 3 Sep 2026 12:32:52 +0800 Subject: [PATCH 2/2] fix(ci): clarify compose file error - document the HStore base and dev overlay pairing - retain legacy self-contained dev file guidance - keep runtime selection behavior unchanged --- .github/workflows/_publish_pd_store_server_reusable.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/_publish_pd_store_server_reusable.yml b/.github/workflows/_publish_pd_store_server_reusable.yml index 086afb1..9b53ca4 100644 --- a/.github/workflows/_publish_pd_store_server_reusable.yml +++ b/.github/workflows/_publish_pd_store_server_reusable.yml @@ -627,7 +627,8 @@ jobs: echo "WARN: docker/docker-compose.dev.yml is unavailable; using legacy docker/docker-compose.yml" else echo "ERROR: no supported compose file found in $SOURCE_REPOSITORY@$SOURCE_SHA" - echo "Expected docker/docker-compose.dev.yml or docker/docker-compose.yml." + echo "Expected docker/docker-compose-hstore.yml plus docker/docker-compose.dev.yml," + echo "or a self-contained docker/docker-compose.dev.yml or docker/docker-compose.yml." exit 1 fi echo "COMPOSE_FILE=$compose_file" >> "$GITHUB_ENV"