ci(test): exit 77 when tools missing to distinguish skip from pass#3055
Open
bitflicker64 wants to merge 2 commits into
Open
ci(test): exit 77 when tools missing to distinguish skip from pass#3055bitflicker64 wants to merge 2 commits into
bitflicker64 wants to merge 2 commits into
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
Contributor
Author
|
@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. |
11 tasks
imbajin
reviewed
Jun 8, 2026
imbajin
left a comment
Member
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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