fix(workflows): unify HugeGraph toolchain's CI#728
fix(workflows): unify HugeGraph toolchain's CI#728peakxy wants to merge 1 commit intoapache:masterfrom
Conversation
There was a problem hiding this comment.
Pull request overview
Migrates HugeGraph toolchain module CI workflows from inline job definitions to shared reusable workflows hosted in hugegraph/actions, aiming to reduce duplication while preserving module-specific triggers and commands.
Changes:
- Replaced module CI job steps with calls to
_toolchain_java_ci_reusable.yml/_toolchain_go_ci_reusable.yml, passing compile/prepare/test commands as inputs. - Updated the
releasebranch filter from an invalid regex-like literal to the supported globrelease-*. - Kept staged Maven settings usage by passing
.github/configs/settings.xmlinto the reusable workflows, and preserved Codecov file paths.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/client-ci.yml | Wraps Java client CI into the shared reusable Java workflow with module-specific commands and Codecov path. |
| .github/workflows/client-go-ci.yml | Wraps Go client CI into the shared reusable Go workflow, preserving HugeGraph setup and make test flow. |
| .github/workflows/hubble-ci.yml | Wraps Hubble CI into the shared reusable Java workflow, including Python setup and multi-step prepare/test commands. |
| .github/workflows/loader-ci.yml | Wraps Loader CI into the shared reusable Java workflow, including Hadoop/MySQL setup and multiple Maven test profiles. |
| .github/workflows/spark-connector-ci.yml | Wraps Spark connector CI into the shared reusable Java workflow with module-specific build/test commands. |
| .github/workflows/tools-ci.yml | Wraps Tools CI into the shared reusable Java workflow, preserving HugeGraph install and FuncTestSuite execution. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| with: | ||
| token: ${{ secrets.CODECOV_TOKEN }} | ||
| file: target/jacoco.xml | ||
| uses: hugegraph/actions/.github/workflows/_toolchain_java_ci_reusable.yml@master |
There was a problem hiding this comment.
The reusable workflow is referenced via a moving branch (@master). This is a supply-chain risk because changes in hugegraph/actions can alter CI behavior without review in this repo. Pin the reusable workflow to an immutable ref (tag or commit SHA) and update it intentionally when needed.
| uses: hugegraph/actions/.github/workflows/_toolchain_java_ci_reusable.yml@master | |
| uses: hugegraph/actions/.github/workflows/_toolchain_java_ci_reusable.yml@0123456789abcdef0123456789abcdef01234567 |
| with: | ||
| token: ${{ secrets.CODECOV_TOKEN }} | ||
| file: target/site/jacoco/*.xml | ||
| uses: hugegraph/actions/.github/workflows/_toolchain_java_ci_reusable.yml@master |
There was a problem hiding this comment.
The reusable workflow is referenced via a moving branch (@master). This is a supply-chain risk because changes in hugegraph/actions can alter CI behavior without review in this repo. Pin the reusable workflow to an immutable ref (tag or commit SHA) and update it intentionally when needed.
| uses: hugegraph/actions/.github/workflows/_toolchain_java_ci_reusable.yml@master | |
| uses: hugegraph/actions/.github/workflows/_toolchain_java_ci_reusable.yml@<FULL_LENGTH_COMMIT_SHA> |
| sudo sysctl -w fs.file-max=262144 | ||
| sudo sysctl -w vm.max_map_count=262144 | ||
| cd hugegraph-client-go && make test | ||
| uses: hugegraph/actions/.github/workflows/_toolchain_go_ci_reusable.yml@master |
There was a problem hiding this comment.
The reusable workflow is referenced via a moving branch (@master). This is a supply-chain risk because changes in hugegraph/actions can alter CI behavior without review in this repo. Pin the reusable workflow to an immutable ref (tag or commit SHA) and update it intentionally when needed.
| uses: hugegraph/actions/.github/workflows/_toolchain_go_ci_reusable.yml@master | |
| uses: hugegraph/actions/.github/workflows/_toolchain_go_ci_reusable.yml@<FULL_40_CHAR_REVIEWED_COMMIT_SHA> |
| with: | ||
| token: ${{ secrets.CODECOV_TOKEN }} | ||
| file: target/jacoco.xml | ||
| uses: hugegraph/actions/.github/workflows/_toolchain_java_ci_reusable.yml@master |
There was a problem hiding this comment.
The reusable workflow is referenced via a moving branch (@master). This is a supply-chain risk because changes in hugegraph/actions can alter CI behavior without review in this repo. Pin the reusable workflow to an immutable ref (tag or commit SHA) and update it intentionally when needed.
| uses: hugegraph/actions/.github/workflows/_toolchain_java_ci_reusable.yml@master | |
| uses: hugegraph/actions/.github/workflows/_toolchain_java_ci_reusable.yml@<FULL_LENGTH_COMMIT_SHA> |
| on: | ||
| push: | ||
| branches: | ||
| - master | ||
| - /^release-.*$/ | ||
| - release-* |
There was a problem hiding this comment.
PR description/verification notes mention manually triggering client-go-ci, but this workflow currently has no workflow_dispatch trigger (only push/pull_request). Either add workflow_dispatch: (if manual runs are intended) or update the PR description to match the actual trigger policy.
| with: | ||
| token: ${{ secrets.CODECOV_TOKEN }} | ||
| file: target/jacoco.xml | ||
| uses: hugegraph/actions/.github/workflows/_toolchain_java_ci_reusable.yml@master |
There was a problem hiding this comment.
The reusable workflow is referenced via a moving branch (@master). This is a supply-chain risk because changes in hugegraph/actions can alter CI behavior without review in this repo. Pin the reusable workflow to an immutable ref (tag or commit SHA) and update it intentionally when needed.
| uses: hugegraph/actions/.github/workflows/_toolchain_java_ci_reusable.yml@master | |
| uses: hugegraph/actions/.github/workflows/_toolchain_java_ci_reusable.yml@<FULL_40_CHAR_COMMIT_SHA> |
| run: | | ||
| cd hugegraph-spark-connector && ls | ||
| mvn test | ||
| uses: hugegraph/actions/.github/workflows/_toolchain_java_ci_reusable.yml@master |
There was a problem hiding this comment.
The reusable workflow is referenced via a moving branch (@master). This is a supply-chain risk because changes in hugegraph/actions can alter CI behavior without review in this repo. Pin the reusable workflow to an immutable ref (tag or commit SHA) and update it intentionally when needed.
| uses: hugegraph/actions/.github/workflows/_toolchain_java_ci_reusable.yml@master | |
| uses: hugegraph/actions/.github/workflows/_toolchain_java_ci_reusable.yml@<FULL_LENGTH_COMMIT_SHA> |
Purpose of the PR
This PR migrates the current repository-local CI jobs in
apache/hugegraph-toolchainto shared reusable workflows hosted inhugegraph/actions.The goal is to reduce duplicated GitHub Actions logic across modules while
keeping each module's trigger policy, path filters, compile commands, prepare
commands, and test commands unchanged.
Main Changes
client-ci.ymlclient-go-ci.ymlloader-ci.ymlhubble-ci.ymltools-ci.ymlspark-connector-ci.ymlhugegraph/actions/.github/workflows/_toolchain_java_ci_reusable.yml@master.hugegraph-client-gotohugegraph/actions/.github/workflows/_toolchain_go_ci_reusable.yml@master.previous workflows, including the existing HugeGraph commit ids and coverage
upload behavior.
.github/configs/settings.xmlfrom thehugegraph-toolchainrepository./^release-.*$/with the supportedGitHub Actions glob
release-*.Verifying these changes
peakxy/hugegraph-actions@<feature-branch>for integration testing.client-ciand confirm the reusable Java workflow keepsthe original compile and test sequence.
client-go-ciand confirm the reusable Go workflow keepsthe original HugeGraph environment preparation and
make testflow.loader-ciandhubble-cito verify the more complexprepare steps still work with the reusable workflow inputs.
release-*branch and confirm the workflow trigger works withthe updated branch filter.
settings.xmlis still read from.github/configs/settings.xmlin the caller repository.Does this PR potentially affect the following parts?
Documentation Status
Doc - TODODoc - DoneDoc - No Need