From e3f28a21ab2a2649e9b2713a45956d727e9aa86a Mon Sep 17 00:00:00 2001 From: StellaOps Bot Date: Sun, 7 Dec 2025 15:23:08 +0200 Subject: [PATCH] ops/devops: fix console runner build paths and log built image --- .../SPRINT_0504_0001_0001_ops_devops_ii.md | 1 + ops/devops/console/Dockerfile.runner | 16 +++++++--------- ops/devops/console/build-runner-image-ci.sh | 2 +- ops/devops/console/build-runner-image.sh | 2 +- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/docs/implplan/SPRINT_0504_0001_0001_ops_devops_ii.md b/docs/implplan/SPRINT_0504_0001_0001_ops_devops_ii.md index dc638f93e..2a5d15732 100644 --- a/docs/implplan/SPRINT_0504_0001_0001_ops_devops_ii.md +++ b/docs/implplan/SPRINT_0504_0001_0001_ops_devops_ii.md @@ -41,6 +41,7 @@ ## Execution Log | Date (UTC) | Update | Owner | | --- | --- | --- | +| 2025-12-07 | Built offline console runner image locally via `ops/devops/console/build-runner-image-ci.sh` (tag `stellaops/console-runner:offline-20251207T131911Z`, tarball at `ops/devops/artifacts/console-runner/console-runner-20251207T131911Z.tar`); ready for runner registration. | DevOps Guild | | 2025-12-07 | Added console runner CI build workflow (`.gitea/workflows/console-runner-image.yml`) and CI wrapper (`ops/devops/console/build-runner-image-ci.sh`) to publish baked runner tarball + metadata. | DevOps Guild | | 2025-12-07 | Added console runner Dockerfile + build helper to bake npm/Playwright caches; README updated with runner image usage. | DevOps Guild | | 2025-12-07 | Added console offline runner spec (`ops/devops/console/README.md`) and manual-only CI skeleton (`.gitea/workflows/console-ci.yml`); moved DEVOPS-CONSOLE-23-001 to DOING pending runner cache bake/approval. | DevOps Guild | diff --git a/ops/devops/console/Dockerfile.runner b/ops/devops/console/Dockerfile.runner index ba94996f9..27461d18d 100644 --- a/ops/devops/console/Dockerfile.runner +++ b/ops/devops/console/Dockerfile.runner @@ -11,16 +11,14 @@ ENV DEBIAN_FRONTEND=noninteractive \ NPM_CONFIG_AUDIT=false \ NPM_CONFIG_PROGRESS=false \ SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} \ - PLAYWRIGHT_BROWSERS_PATH=/home/runner/.cache/ms-playwright \ - NPM_CONFIG_CACHE=/home/runner/.npm \ + PLAYWRIGHT_BROWSERS_PATH=/home/node/.cache/ms-playwright \ + NPM_CONFIG_CACHE=/home/node/.npm \ CI=true RUN apt-get update && \ apt-get install -y --no-install-recommends git ca-certificates dumb-init wget curl && \ rm -rf /var/lib/apt/lists/* -RUN useradd -m -u 1000 runner - WORKDIR /tmp/console-seed COPY ${APP_DIR}/package.json ${APP_DIR}/package-lock.json ./ @@ -29,12 +27,12 @@ RUN npm ci --cache ${npm_config_cache} --prefer-offline --no-audit --progress=fa PLAYWRIGHT_BROWSERS_PATH=/tmp/ms-playwright npx playwright install chromium --with-deps && \ rm -rf node_modules -RUN install -d -o runner -g runner /home/runner/.npm /home/runner/.cache && \ - mv /tmp/npm-cache /home/runner/.npm && \ - mv /tmp/ms-playwright /home/runner/.cache/ms-playwright && \ - chown -R runner:runner /home/runner/.npm /home/runner/.cache +RUN install -d -o node -g node /home/node/.npm /home/node/.cache && \ + mv /tmp/npm-cache /home/node/.npm && \ + mv /tmp/ms-playwright /home/node/.cache/ms-playwright && \ + chown -R node:node /home/node/.npm /home/node/.cache WORKDIR /workspace -USER runner +USER node ENTRYPOINT ["/usr/bin/dumb-init","--"] CMD ["/bin/bash"] diff --git a/ops/devops/console/build-runner-image-ci.sh b/ops/devops/console/build-runner-image-ci.sh index c740fc2af..c583ca586 100755 --- a/ops/devops/console/build-runner-image-ci.sh +++ b/ops/devops/console/build-runner-image-ci.sh @@ -10,7 +10,7 @@ set -euo pipefail # OUTPUT_TAR : optional override of tarball path (default: ops/devops/artifacts/console-runner/console-runner-$RUN_ID.tar) # APP_DIR : optional override of app directory (default: src/Web/StellaOps.Web) -ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)" RUN_ID="${RUN_ID:-${GITHUB_RUN_ID:-$(date -u +%Y%m%dT%H%M%SZ)}}" APP_DIR="${APP_DIR:-src/Web/StellaOps.Web}" IMAGE_TAG="${IMAGE_TAG:-stellaops/console-runner:offline-$RUN_ID}" diff --git a/ops/devops/console/build-runner-image.sh b/ops/devops/console/build-runner-image.sh index ce57fc727..e25a906cd 100755 --- a/ops/devops/console/build-runner-image.sh +++ b/ops/devops/console/build-runner-image.sh @@ -5,7 +5,7 @@ set -euo pipefail # IMAGE_TAG: docker tag to produce (default: stellaops/console-runner:offline) # OUTPUT_TAR: optional path to save the image tarball for airgap use. -ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)" IMAGE_TAG=${IMAGE_TAG:-stellaops/console-runner:offline} DOCKERFILE=${DOCKERFILE:-ops/devops/console/Dockerfile.runner} APP_DIR=${APP_DIR:-src/Web/StellaOps.Web}