From 1d4e9ad0b95c2d9039da636e26c129a8b5c89800 Mon Sep 17 00:00:00 2001 From: dvcdsys Date: Mon, 4 May 2026 12:14:13 +0100 Subject: [PATCH] ci(release-server): wire openapi build context for dashboard stage Both Dockerfile and Dockerfile.cuda have `COPY --from=openapi openapi.yaml /spec/openapi.yaml` in the dashboard build stage (added when the dashboard started consuming the OpenAPI spec for type generation). The release workflow's docker/build-push-action calls were missing the corresponding `build-contexts: openapi=doc` parameter, so the next `server/v*` tag push (or workflow_dispatch) would fail at the dashboard stage with "stage openapi not found". `make docker-build-cuda-dev` works because it passes `--build-context openapi=$(ROOT)/../doc` directly. This brings CI to parity. Co-Authored-By: Claude Opus 4.7 --- .github/workflows/release-server.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/release-server.yml b/.github/workflows/release-server.yml index 8f1c7fd..f0c7c2f 100644 --- a/.github/workflows/release-server.yml +++ b/.github/workflows/release-server.yml @@ -84,6 +84,11 @@ jobs: provenance: mode=max sbom: true build-args: VERSION=${{ steps.ver.outputs.version }} + # `openapi=doc` mounts the repo-root doc/ folder so the dashboard + # build stage can `COPY --from=openapi openapi.yaml` without us + # widening the primary build context (which is `server/`). + build-contexts: | + openapi=doc tags: ${{ steps.tags.outputs.tags }} docker-cuda: @@ -139,6 +144,11 @@ jobs: provenance: mode=max sbom: true build-args: VERSION=${{ steps.ver.outputs.version }} + # `openapi=doc` mounts the repo-root doc/ folder so the dashboard + # build stage can `COPY --from=openapi openapi.yaml` without us + # widening the primary build context (which is `server/`). + build-contexts: | + openapi=doc tags: ${{ steps.tags.outputs.tags }} release: