Repository navigation
feat(ci): support optional & ordered actions with jobs/prs - #3271
Conversation
- Keep the newest run for each workflow and PR - Verify source freshness before automatic retries - Test retry decisions and document the CI policy
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #3271 +/- ##
============================================
- Coverage 41.69% 40.88% -0.82%
+ Complexity 7365 7187 -178
============================================
Files 794 785 -9
Lines 69291 68158 -1133
Branches 9288 9166 -122
============================================
- Hits 28891 27866 -1025
+ Misses 37113 37051 -62
+ Partials 3287 3241 -46 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Some numbers from the hugegraph org mirrors, in case they help size this. I replayed every completed push and PR run in
Caveats: it was a busy window ( A snapshot from the evening of 2026-10-04 matches: about 11 jobs running and 141 runs queued across the org, and 25 of 137 live runs were already superseded by a newer run on the same branch. |
bitflicker64
left a comment
There was a problem hiding this comment.
Blocking: no. Summary: The per-PR concurrency groups cancel only superseded pull_request runs (push, schedule and manual runs keep a unique run_id group), and the retry checker fails closed: it re-verifies the run attempt and the open PR or branch head before and after the delay, loaded from the trusted default-branch commit. No actionable findings at 91fd925. Evidence: read the full diff and the head versions of rerun-ci.yml and server-ci.yml; ran python3 -m unittest discover -s .github/scripts -p 'test_check_rerun.py' locally (14 tests OK) and confirmed the same 14 tests ran in the Server CI wait-storage-shell-test job; checked with gh api that fork PR runs carry an empty pull_requests list and that the commits/{sha}/pulls fallback resolves them (#3269); all eight workflow runs at this head succeeded, and the only red check, codecov/project, is not required and reports a 0.03% drift on a PR with no Java changes.
imbajin
left a comment
There was a problem hiding this comment.
Blocking: no. Summary: Fork PR retries can be skipped when GitHub returns no PR association, and stale reruns can cancel current-head CI. Evidence: exact-head run/commit association responses, the workflow group at .github/workflows/server-ci.yml:11-14, and documented Actions rerun/concurrency semantics; all ordinary workflows passed, while codecov/project failed as a non-blocking quality signal.
- select related Linux tests and verify reusable results - defer compatibility and security checks until core tests pass - isolate retries and migrate required check names - shorten the contribution guide and document CI policy
- merge the latest Server master and preserve its fixes - retain strict test reports and affected module gates - keep reruns isolated in the central workflow - align contribution requirements with Java 17
- preserve cancellation of superseded PR checks - separate reruns from current-head license checks - retain independent non-PR execution groups
bitflicker64
left a comment
There was a problem hiding this comment.
Blocking: yes. Score: 1.5/10. Summary: The gate, the legacy aliases and the retry freshness checks fail closed as intended, but the selector skips existing tests for some server and docker paths, receipt reuse scans only 30 repository-wide runs, and the 3rd-party check becomes part of the required gate. Evidence: read the full diff against master and the reusable workflows it calls; ran the 39 tests in .github/scripts (OK), ran select() on concrete paths (root and server poms, hugegraph-rocksdb, docker/, store dist, workflow files, docs), YAML and Python syntax checks, and read Actions run history and this PR's checks through the API. CI at a23281d is still running; check-license passes.
- cover Server dependencies and deployment contracts - verify optional proofs across documentation updates - run post-gate checks after intentionally skipped suites - document migration limits and pending runtime validation
- keep third-party review outside the required gate - share four image builds and verify their runtime inputs - check service health, readiness and authentication - retain Hubble smoke and document deployment coverage
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
imbajin
left a comment
There was a problem hiding this comment.
Blocking: no. Summary: The CI receipt and retry paths each have a validation gap that can waste test capacity or exhaust the retry runner. Evidence: the local/API fingerprint comparison and the artifact download path in the exact-head scripts.
bitflicker64
left a comment
There was a problem hiding this comment.
Blocking: yes. Summary: PD and Store distribution files that the PD and Store images ship (conf/application.yml, bin/start-.sh) no longer select the Docker suite, so the new image startup, health and PD auth checks never run for them, although docs/ci.md says distribution changes include Docker and master ran Docker Build CI for hugegraph-pd/** and hugegraph-store/**. Evidence: at 77148c7, select("server", ["hugegraph-pd/hg-pd-dist/src/assembly/static/conf/application.yml"]) and the same for hg-store-dist conf/application.yml and bin/start-hugegraph-pd.sh return suites [cluster, pd_store] only, while hugegraph-server/hugegraph-dist/src/assembly/static/conf/rest-server.properties returns [cluster, docker, pd_store, server_memory, server_rocksdb]; hugegraph-pd/Dockerfile:63 copies the assembled dist and docker-entrypoint.sh:146 runs bin/start-hugegraph-pd.sh; python3 -m unittest discover -s .github/scripts -p 'test_.py' passes (64 tests).
- remove untrusted result reuse and PR artifact retries - cover PD and Store distribution image consumers - reject stale or incomplete pull request inputs - retain strict current push retries and document limits
Keep the existing analysis key across reusable callers Keep per-language scan categories aligned with master Quote staged Maven settings paths for workflow validation
Select affected tests and run them before compatibility and security work, while sharing image preparation.