ci(tst-03): fix codegen-check null bug, refresh rust proto, gradle direct install
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
This commit is contained in:
@@ -101,10 +101,13 @@ jobs:
|
|||||||
distribution: temurin
|
distribution: temurin
|
||||||
java-version: '17'
|
java-version: '17'
|
||||||
# GitHub-hosted runners ship gradle on PATH; the self-hosted act image does not, and the repo
|
# GitHub-hosted runners ship gradle on PATH; the self-hosted act image does not, and the repo
|
||||||
# has no gradle wrapper. Provision gradle (latest stable, matching the local homebrew build).
|
# has no gradle wrapper. act also can't resolve the gradle/actions monorepo action, so install
|
||||||
- uses: gradle/actions/setup-gradle@v4
|
# gradle directly (pinned to 9.5.1, matching the local homebrew build in CLAUDE.md/memory).
|
||||||
with:
|
- name: Install Gradle 9.5.1
|
||||||
gradle-version: current
|
run: |
|
||||||
|
curl -sSL "https://services.gradle.org/distributions/gradle-9.5.1-bin.zip" -o /tmp/gradle.zip
|
||||||
|
sudo unzip -q -d /opt/gradle /tmp/gradle.zip
|
||||||
|
echo "/opt/gradle/gradle-9.5.1/bin" >> "$GITHUB_PATH"
|
||||||
- name: Gradle test
|
- name: Gradle test
|
||||||
working-directory: clients/java
|
working-directory: clients/java
|
||||||
run: gradle test
|
run: gradle test
|
||||||
|
|||||||
@@ -42,6 +42,12 @@ message GatewayHello {
|
|||||||
uint32 supported_protocol_version = 1;
|
uint32 supported_protocol_version = 1;
|
||||||
string nonce = 2;
|
string nonce = 2;
|
||||||
string gateway_version = 3;
|
string gateway_version = 3;
|
||||||
|
// Maximum worker-frame payload size, in bytes, negotiated by the gateway from its
|
||||||
|
// configured pipe limit. The worker adopts this as its frame-protocol MaxMessageBytes
|
||||||
|
// instead of a hard-coded default; 0 (an older gateway that never set the field) means
|
||||||
|
// "use the worker's built-in default". Sits above the public gRPC cap by an
|
||||||
|
// envelope-overhead margin so an accepted gRPC payload always fits one worker frame.
|
||||||
|
uint32 max_frame_bytes = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
message WorkerHello {
|
message WorkerHello {
|
||||||
|
|||||||
@@ -52,7 +52,9 @@ try {
|
|||||||
$failures.Add('Contracts project failed to build during codegen check.')
|
$failures.Add('Contracts project failed to build during codegen check.')
|
||||||
}
|
}
|
||||||
|
|
||||||
$diff = (& git -C $repoRoot status --porcelain -- 'src/ZB.MOM.WW.MxGateway.Contracts/Generated').Trim()
|
# Pipe through Out-String so a clean tree (git emits nothing -> $null) does not throw
|
||||||
|
# "cannot call a method on a null-valued expression"; Out-String yields '' for no output.
|
||||||
|
$diff = (& git -C $repoRoot status --porcelain -- 'src/ZB.MOM.WW.MxGateway.Contracts/Generated' | Out-String).Trim()
|
||||||
if (-not [string]::IsNullOrEmpty($diff)) {
|
if (-not [string]::IsNullOrEmpty($diff)) {
|
||||||
Write-Host $diff
|
Write-Host $diff
|
||||||
$failures.Add('Contracts/Generated differs from a fresh regeneration. Run `dotnet build` on the contracts project and commit Generated/ (required for the net48 worker build).')
|
$failures.Add('Contracts/Generated differs from a fresh regeneration. Run `dotnet build` on the contracts project and commit Generated/ (required for the net48 worker build).')
|
||||||
|
|||||||
Reference in New Issue
Block a user