chore(ci): exit 77 when tools missing to distinguish skip from pass#3055
Conversation
All three startup test scripts previously exited 0 when required tools (lsof, curl, java) were not found. This is indistinguishable from a passing test run — CI shows green even though no tests ran. Change skip exits to 77 (conventional skip code) and update the CI workflow steps to treat exit 77 as a visible skip notice rather than a failure. Flagged as non-blocking follow-up in reviews of apache#3044 and apache#3047. Related to: apache#3043
|
@dosu review? |
|
I don't perform code reviews (assessing PRs for bugs, design, style, performance, or security). However, I can help in other ways — for example, I can research how the existing CI workflows or test scripts are structured, answer questions about the conventions used in the repository, or help with documentation updates related to this change. Would any of those be useful? To reply, just mention @dosu. Share context across your team and agents. Try Dosu. |
imbajin
left a comment
There was a problem hiding this comment.
Blocking: yes. Summary: The startup test wrapper still reports skipped suites as successful GitHub Actions steps. Evidence: static review of the workflow wrapper and local dummy-dist runs where the scripts returned 77.
Latest-head CI has visible failures; please also check dependency-check / build-commons (11): 🔗 https://github.com/apache/hugegraph/actions/runs/27120670959/job/80036825383
Replace the exit-77 + set+e wrapper with a preflight step that writes can_run and skip_reason to GITHUB_OUTPUT. The test step is guarded by if: steps.<id>.outputs.can_run == 'true', so it shows as grey Skipped (not green Success) when prerequisites are missing. The Store preflight distinguishes 'missing tool: <name>' from 'ulimit -n is <N> (store requires >= 1024)' with separate skip_reason values as requested in review. Addresses blocking review feedback from imbajin on apache#3055. Related to: apache#3043
imbajin
left a comment
There was a problem hiding this comment.
+1 from my side. The previous concern has been addressed.
One non-blocking improvement for a future follow-up: the preflight checks are now duplicated between the workflow YAML and the startup scripts, so it may be worth consolidating them into a shared helper later to avoid drift when prerequisites change.
suree that makes sense should i add a TODO ? |
I’m fine either way~ |
Purpose of the PR
The three startup test scripts (
test-start-hugegraph.sh,test-start-hugegraph-pd.sh,test-start-hugegraph-store.sh) exit0when required tools (lsof,curl,java) are not found. Exit code0is indistinguishable from a passing test run — CI shows green even though no tests ran.Main Changes
Test scripts:
exit 0→exit 77in all tool-missing skip pathsexit 0→exit 77in the Storeulimit -nskip pathCI workflows (
server-ci.yml,pd-store-ci.yml):set +e/ exit code capture77as a visible::notice::annotation (not a failure)Verifying these changes
lsoffrom the runner path → CI step shows::notice::... skippedinstead of silently passing0, step passes as before1, step fails as beforeDoes this PR potentially affect the following parts?
Documentation Status
Doc - No Need