Commit Graph

6 Commits

Author SHA1 Message Date
Joseph Doherty 7b223d8f39 ci(tst-03): run Windows host-mode jobs via cmd (act pwsh shim is broken)
ci / live-mxaccess (push) Waiting to run
ci / live-mxaccess (pull_request) Waiting to run
ci / windows (push) Failing after 1s
ci / windows (pull_request) Failing after 0s
ci / java (push) Successful in 2m3s
ci / portable (push) Successful in 7m25s
ci / java (pull_request) Successful in 1m53s
ci / portable (pull_request) Successful in 6m51s
Claude-Session: https://claude.ai/code/session_01DMXXvNuPekkkrTEyPNxEkW
2026-07-10 04:54:07 -04:00
Joseph Doherty 4af2a6b859 ci(tst-03): manual checkout for Windows host-mode jobs (act can't stage JS actions)
ci / live-mxaccess (push) Waiting to run
ci / live-mxaccess (pull_request) Waiting to run
ci / windows (push) Failing after 5s
ci / windows (pull_request) Failing after 3s
ci / java (push) Successful in 1m56s
ci / portable (push) Successful in 7m3s
ci / java (pull_request) Successful in 1m57s
ci / portable (pull_request) Successful in 6m56s
act host-mode on Windows does not materialize a JS action's dist/ (actions/checkout
fails with "Cannot find module .../dist/index.js"), so the windows + live-mxaccess
jobs check the repo out with plain git instead (public repo, anonymous https clone
of GITHUB_SHA). The self-hosted windev runner otherwise works (host mode, persistent).

Claude-Session: https://claude.ai/code/session_01DMXXvNuPekkkrTEyPNxEkW
2026-07-10 04:52:04 -04:00
Joseph Doherty 576179bd3f ci(tst-03): fix orphan-terminator test on Linux + refresh stale java worker codegen
ci / live-mxaccess (push) Waiting to run
ci / java (push) Successful in 1m56s
ci / portable (push) Failing after 7m32s
ci / windows (push) Failing after 8s
Two real defects the CI run surfaced (driving to fully green):

- OrphanWorkerTerminatorTests hard-coded a Windows path (C:\...); on the Linux
  runner Path.GetFullPath does not root it, so the terminator's exact-path match
  found nothing (Expected 2/1 kills, Actual 0). Use an OS-appropriate normalized
  path so the matching logic is validated on every platform (5/5 pass locally).
- clients/java generated MxaccessWorker.java was stale — missing the canonical
  max_frame_bytes field. Refreshed via `gradle generateProto` (protobuf 4.33.1,
  the pinned version — the diff is purely the field, no version churn). Broaden
  the ci.yml churn-revert to both generated aggregates so verify-clean still
  guards real drift elsewhere.

Claude-Session: https://claude.ai/code/session_01DMXXvNuPekkkrTEyPNxEkW
2026-07-10 04:01:33 -04:00
Joseph Doherty 866d053ec2 ci(tst-03): fix codegen-check null bug, refresh rust proto, gradle direct install
ci / live-mxaccess (push) Waiting to run
ci / java (push) Failing after 1m57s
ci / portable (push) Failing after 3m36s
ci / windows (push) Failing after 8s
Surfaced by the first real CI run on the self-hosted runner:

- scripts/check-codegen.ps1: `git status --porcelain` returns $null on a clean
  tree, so `.Trim()` threw "cannot call a method on a null-valued expression" —
  i.e. Check 2 could never report success. Pipe through Out-String (null -> '').
- clients/rust/protos/mxaccess_worker.proto: genuinely stale — missing the
  canonical `max_frame_bytes` field. Refreshed from
  src/ZB.MOM.WW.MxGateway.Contracts/Protos (Check 3 drift guard, added in P1).
- ci.yml java job: act cannot resolve the gradle/actions monorepo action
  (`unsupported object type` on the v4 tag); install Gradle 9.5.1 directly instead
  (matches the local build) since the repo has no gradle wrapper.

Claude-Session: https://claude.ai/code/session_01DMXXvNuPekkkrTEyPNxEkW
2026-07-10 03:49:09 -04:00
Joseph Doherty a36844d59d ci(tst-03): provision pwsh + gradle for the self-hosted act runner
ci / live-mxaccess (push) Waiting to run
ci / portable (push) Failing after 4m46s
ci / java (push) Failing after 10m43s
ci / windows (push) Failing after 8s
The portable and java jobs assumed tools GitHub-hosted runners preinstall but the
self-hosted catthehacker act image lacks: `pwsh` (the codegen freshness check uses
`shell: pwsh`) and `gradle` (the java job runs `gradle test`; the repo has no
wrapper). Install PowerShell as a .NET global tool (the SDK is already set up) and
provision gradle via gradle/actions/setup-gradle. No behavior change on
GitHub-hosted runners, which already have both.

Claude-Session: https://claude.ai/code/session_01DMXXvNuPekkkrTEyPNxEkW
2026-07-10 03:34:10 -04:00
Joseph Doherty d5248f61a2 fix(archreview): CI pipeline + codegen freshness guards (IPC-01/09/19/20, TST-03)
- IPC-01: regenerate the stale client descriptor set and add ClientProtoInputTests
  (semantic, protoc-free) so a missing contract symbol fails the build.
- IPC-20: make publish-client-proto-inputs.ps1 -Check source_code_info-normalized
  so it is protoc-version tolerant.
- IPC-19: document + guard the "Generated/ must be committed for net48" rule
  (docs/Contracts.md, csproj comment, check-codegen.ps1).
- IPC-09: harden the per-client generate-proto scripts (PATH resolution + pinned
  grpcio/protobuf/java version asserts) so regeneration is reproducible.
- TST-03: add .gitea/workflows/ci.yml (portable/java/windows/live jobs) running the
  build, tests, client checks, and the codegen guards.
- Also: check-codegen.ps1 Check 3 guards the CLI-02 vendored Rust protos against drift.

archreview: IPC-01/09/19/20 Done, TST-03 In review (pipeline authored + validated,
not yet run on a Gitea runner). Verified on macOS: NonWindows build clean,
ClientProtoInputTests 5/5, -Check exit 0.
2026-07-09 06:17:56 -04:00