chore(ci): optimize rerun workflow and add macOS RocksDB coverage#3010
chore(ci): optimize rerun workflow and add macOS RocksDB coverage#3010contrueCT wants to merge 6 commits intoapache:masterfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates HugeGraph’s CI infrastructure for server validation. It aims to reduce unnecessary rerun handling in the GitHub Actions rerun workflow and extend HugeGraph Server CI to exercise the single-node RocksDB path on macOS, with accompanying shell-script portability fixes for BSD/macOS environments.
Changes:
- Restricts the rerun-decision job in
rerun-ci.ymlto failed upstream workflow runs and simplifies its decision script. - Adds a new macOS RocksDB server matrix job in
server-ci.ymlfor Intel and Apple Silicon runners. - Refactors CI helper scripts to be more macOS-compatible by avoiding Bash 4-only features, handling BSD
sed -i, resolving repo-root paths, and supportingcurl/wgetdownloads.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
hugegraph-server/hugegraph-dist/src/assembly/travis/start-server.sh |
Reworks backend/serializer setup for portability and adds support for injecting extra server JVM options. |
hugegraph-server/hugegraph-dist/src/assembly/travis/run-api-test.sh |
Normalizes script/repo paths, adds portable download and sed helpers, and keeps API-test server setup rooted from repo top. |
hugegraph-server/hugegraph-dist/src/assembly/travis/build-report.sh |
Resolves report output paths from repo root and makes JaCoCo CLI download logic portable. |
.github/workflows/server-ci.yml |
Adds a macOS RocksDB CI matrix job covering compile, core test, API test, failure logging, and cleanup. |
.github/workflows/rerun-ci.yml |
Adds a job-level failure gate to rerun decision logic and removes redundant non-failure branching. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Resolve Travis helper directory to an absolute path - Use the script directory directly for JaCoCo agent lookup - Avoid nesting absolute paths under the repository root
|
Follow-up note for #3006: I think the Gremlin Console Apple Silicon/Jansi coverage should stay in a separate PR from this one. This PR is scoped to rerun CI behavior plus macOS RocksDB server/API coverage. The |
Purpose of the PR
Optimize the Rerun CI workflow and add macOS coverage for the single-node RocksDB server path.
The rerun workflow now only starts the rerun decision job when an upstream CI workflow actually fails, avoiding unnecessary skipped rerun workflow records after successful or non-failure CI completions.
This PR also adds macOS RocksDB server checks in parallel with the existing Linux Server CI, covering both Intel and Apple Silicon runners for compile, core test, server startup, and API test coverage.
Main Changes
.github/workflows/rerun-ci.ymldecide-rerun-actionso it only runs whengithub.event.workflow_run.conclusion == 'failure'gh run rerun --failedbehavior unchanged.github/workflows/server-ci.ymlbuild-server-macos-rocksdbformacos-15-intelandmacos-15start-server.shavoid Bash 4 associative arrays and use portable backend serializer selectionsed -ihandlingrun-api-test.shandbuild-report.shresolve paths from the script/repo root and usecurl/wgetfallback downloadsSERVER_JAVA_OPTIONSformacos-15(-Xms512m -Xmx2g) through the existing server startup-joption pathVerifying these changes
git diff --checkbash -nfor the changed shell scriptsbuild-server-macos-rocksdb (macos-15-intel)passedbuild-server-macos-rocksdb (macos-15, -Xms512m -Xmx2g)passedmemory,rocksdb, andhbasepassedDoes this PR potentially affect the following parts?
Documentation Status
Doc - TODODoc - DoneDoc - No Need