fix(build): unblock Build & Deploy Catalyst — Containerfile + test typing (#1172)

* fix(build): unblock Build & Deploy Catalyst — Containerfile + test typing

The Build & Deploy Catalyst workflow has been failing on every PR since
EPIC-2 Slice I (#1152) merged. Two real bugs caught after the founder
flagged that no images had been built or deployed:

1. catalyst-api Containerfile: the replace directive added by slice I
   (`replace github.com/openova-io/openova/core/controllers => ../../../../core/controllers`)
   resolves to /core/controllers when WORKDIR=/app. The Containerfile only
   copied products/catalyst/bootstrap/api/go.{mod,sum}, not the controllers
   tree, so `go mod download` failed with "no such file or directory" on
   /core/controllers/go.mod. Fix: COPY the controllers tree BEFORE go mod.

2. SessionsPage.test.tsx (slice X2+E #1169): vi.fn(async () => SEED) infers
   parameter tuple as `[]`, so `lastCall[1]` was a TS2493 type error
   ("Tuple type '[]' of length '0' has no element at index '1'"). Cast
   lastCall to the actual listSessions signature.

Per canon §7 + the founder's "you are the merger" rule, this is the kind
of CI-pipeline regression that MUST be caught BEFORE claiming slice
completion.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* deploy: update catalyst images to 7235431

---------

Co-authored-by: hatiyildiz <hati.yildiz@openova.io>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This commit is contained in:
e3mrah 2026-05-09 12:28:59 +04:00 committed by GitHub
parent 2c32fde847
commit da1d3d1ffa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 12 additions and 5 deletions

View File

@ -21,6 +21,13 @@
# ---------- Stage 1: build the Go binaries ----------
FROM docker.io/library/golang:1.26-alpine AS build
# core/controllers/ is required by the replace directive in
# products/catalyst/bootstrap/api/go.mod (added by EPIC-2 slice I #1152
# so the catalyst-api preview handler renders byte-identical manifests
# to application-controller). The shared-module path resolves to
# /core/controllers when WORKDIR=/app, so we COPY the controllers tree
# BEFORE `go mod download`.
COPY core/controllers/ /core/controllers/
WORKDIR /app
COPY products/catalyst/bootstrap/api/go.mod products/catalyst/bootstrap/api/go.sum ./
RUN go mod download

View File

@ -152,7 +152,7 @@ describe('SessionsPage', () => {
await waitFor(() => {
expect(listFn).toHaveBeenCalledTimes(2)
})
const lastCall = listFn.mock.calls[listFn.mock.calls.length - 1]
const lastCall = listFn.mock.calls[listFn.mock.calls.length - 1] as unknown as [string, { pod?: string; user?: string; page?: number }]
expect(lastCall[1]).toMatchObject({ pod: 'wp-1', page: 1 })
})

View File

@ -160,7 +160,7 @@ spec:
# values.yaml `images.catalystApi.tag` is also bumped (but
# unused for catalyst-api; kept for SME services that DO read
# from values).
image: "ghcr.io/openova-io/openova/catalyst-api:82ec096"
image: "ghcr.io/openova-io/openova/catalyst-api:7235431"
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080

View File

@ -24,7 +24,7 @@ spec:
# Auto-bumped by .github/workflows/catalyst-build.yaml's deploy
# step on every push to main, so Sovereigns AND contabo both
# roll to the latest catalyst-ui SHA.
image: "ghcr.io/openova-io/openova/catalyst-ui:82ec096"
image: "ghcr.io/openova-io/openova/catalyst-ui:7235431"
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080

View File

@ -125,9 +125,9 @@ images:
organization: "openova-io/openova"
# SHA tags — bump these via CI when building new images.
catalystApi:
tag: "82ec096"
tag: "7235431"
catalystUi:
tag: "82ec096"
tag: "7235431"
marketplaceApi:
tag: "3c2f7e4"
console: