Skip to content

ci: add concurrency control and JVM crash diagnostics to publish workflow - #150

Merged
bernardladenthin merged 2 commits into
mainfrom
claude/java-llama-cpp-b10618-hbc7ag
Aug 29, 2026
Merged

ci: add concurrency control and JVM crash diagnostics to publish workflow#150
bernardladenthin merged 2 commits into
mainfrom
claude/java-llama-cpp-b10618-hbc7ag

Conversation

@bernardladenthin

Copy link
Copy Markdown
Owner

Summary

  • Concurrency control: Added concurrency configuration to cancel in-flight PR runs when a branch is pushed again, reducing wasted runner time and CI ambiguity. Release paths (main/v* tags) always run to completion to avoid partial artifact publication.
  • JVM crash diagnostics: Added a new step that echoes hs_err_pid*.log and surefire dump/dumpstream files to the run page on failure, making JVM-level aborts readable without requiring artifact downloads from restricted networks.

Test plan

  • CI is green on this branch

Related issues / PRs

References ../workspace/policies/ci-test-diagnostics.md section 3.1 for crash log handling rationale.

Checklist

  • I have read CONTRIBUTING.md and CODE_OF_CONDUCT.md
  • My commits follow Conventional Commits
  • No security-sensitive changes

https://claude.ai/code/session_01AnNYn8W1xuVxVJtyL34GyH

claude added 2 commits August 26, 2026 07:10
Mirrors workspace/policies/ci-test-diagnostics.md section 3.1: a failure-gated
step that prints hs_err_pid*.log (first 200 lines) and the surefire
dumpstream/dump into the job log, ahead of the existing crash-dumps upload.

An artifact-only crash log is unreadable wherever egress to Azure Blob Storage
is denied, and GitHub serves artifact bytes from nowhere else. Paths are
repo-root-relative here, matching this repo's single-module layout and the
existing upload's globs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AnNYn8W1xuVxVJtyL34GyH
…de stale CI runs

Two CI-hygiene changes, applied identically across the four Java repos.

1. "Print crash logs (on failure)" ran on `if: failure()` -- so on EVERY red job,
   the overwhelming majority of which are ordinary assertion failures that never
   write a crash log. It nonetheless printed "The fork died without the JVM
   writing a crash log", stated as fact, under a heading that also echoed
   perfectly healthy server logs. Reading a normal test failure, that is an
   invented crash to chase. It now reports the observation, says plainly that no
   file is the EXPECTED case for a normal failure, and names the one signature --
   "The forked VM terminated without properly saying goodbye", or an exit with no
   test results -- that would actually justify the JVM-abort conclusion.

2. `publish.yml` had no `concurrency:` group, so every push started a full
   parallel pipeline while superseded ones kept draining; four were live at once
   in one session, which makes "what is CI saying right now" ambiguous and wastes
   runner time on results nobody reads. `cancel-in-progress` is scoped to
   `pull_request` ONLY: a push to main or a v* tag is a release path and
   cancelling one midway could leave a partially published artifact set, so those
   always run to completion.

Verified: every touched workflow parses with the expected concurrency mapping.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AnNYn8W1xuVxVJtyL34GyH
@bernardladenthin
bernardladenthin merged commit d1a5652 into main Aug 29, 2026
8 of 12 checks passed
@bernardladenthin
bernardladenthin deleted the claude/java-llama-cpp-b10618-hbc7ag branch August 29, 2026 15:09
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants