This repository contains shared GitHub Actions workflows for HugeGraph projects. Its main purpose is to publish Docker images, validate releases, and host small automation workflows used across HugeGraph repositories.
latestpublishing is the automated path: scheduled or manually triggered, with hash gating to skip unchanged sources.releasepublishing is the manual path: it publishes from a versioned branch and should run even if the source is unchanged.- Most image publishers share
.github/workflows/_publish_image_reusable.yml. pd/store/serveruses.github/workflows/_publish_pd_store_server_reusable.ymlwith strict precheck and staged amd64/arm64 -> manifest flow.- In the pd/store/server path, temporary
*-amd64and*-arm64tags are cleaned only after a successful manifest publish.
- Prefer changing the reusable workflow first when the build or publish behavior is shared.
- Keep wrapper workflows thin and explicit.
- Do not merge
latestandreleasewrappers unless the trigger semantics are truly identical. - Keep special-case workflows separate when they need extra prechecks, custom ordering, or non-standard release flow.
- For pd/store/server changes, preserve this intent:
- arm64 failure should not erase already published amd64 artifacts
- only full dual-arch success should trigger manifest + temporary tag cleanup
README.md: human-facing overview of the workflow design..github/workflows/_publish_image_reusable.yml: shared publish implementation..github/workflows/publish_latest_*.yml: automated publish wrappers..github/workflows/publish_release_*.yml: manual release publish wrappers.
- Read the relevant workflow and the reusable workflow together.
- Preserve existing trigger semantics unless the task explicitly asks for a behavioral change.
- Check whether the workflow is a standard publisher or a legacy / special-case flow before refactoring.