























@@ -162,6 +162,50 @@ jobs:
162162provenance: mode=max
163163push: true
164164165+ - name: Smoke test amd64 runtime workspace templates
166+shell: bash
167+env:
168+IMAGE_REFS: ${{ steps.tags.outputs.value }}
169+run: |
170+ set -euo pipefail
171+ mapfile -t image_refs <<< "${IMAGE_REFS}"
172+ image_ref="${image_refs[0]}"
173+ if [[ -z "${image_ref}" ]]; then
174+ echo "::error::No amd64 image ref resolved for runtime template smoke"
175+ exit 1
176+ fi
177+ docker run --rm --entrypoint /bin/sh "${image_ref}" -lc '
178+ set -eu
179+ test -f /app/src/agents/templates/HEARTBEAT.md
180+ temp_root="$(mktemp -d)"
181+ trap "rm -rf \"${temp_root}\"" EXIT
182+ mkdir -p "${temp_root}/home" "${temp_root}/cwd"
183+ cd "${temp_root}/cwd"
184+ set +e
185+ HOME="${temp_root}/home" \
186+ USERPROFILE="${temp_root}/home" \
187+ OPENCLAW_HOME="${temp_root}/home" \
188+ OPENCLAW_NO_ONBOARD=1 \
189+ OPENCLAW_SUPPRESS_NOTES=1 \
190+ OPENCLAW_DISABLE_BUNDLED_PLUGINS=1 \
191+ OPENCLAW_DISABLE_BUNDLED_ENTRY_SOURCE_FALLBACK=1 \
192+ AWS_EC2_METADATA_DISABLED=true \
193+ AWS_SHARED_CREDENTIALS_FILE="${temp_root}/home/.aws/credentials" \
194+ AWS_CONFIG_FILE="${temp_root}/home/.aws/config" \
195+ node /app/openclaw.mjs agent --message "workspace bootstrap smoke" --session-id "workspace-bootstrap-smoke" --local --timeout 1 --json \
196+ >"${temp_root}/out.log" 2>&1
197+ status="$?"
198+ set -e
199+ if grep -F "Missing workspace template:" "${temp_root}/out.log"; then
200+ cat "${temp_root}/out.log"
201+ exit 1
202+ fi
203+ test -f "${temp_root}/home/.openclaw/workspace/HEARTBEAT.md"
204+ if [ "${status}" -ne 0 ]; then
205+ cat "${temp_root}/out.log"
206+ fi
207+ '
208+165209 # Build arm64 image. Default and slim tags point to the same slim runtime.
166210build-arm64:
167211needs: [approve_manual_backfill]
@@ -260,6 +304,50 @@ jobs:
260304provenance: mode=max
261305push: true
262306307+ - name: Smoke test arm64 runtime workspace templates
308+shell: bash
309+env:
310+IMAGE_REFS: ${{ steps.tags.outputs.value }}
311+run: |
312+ set -euo pipefail
313+ mapfile -t image_refs <<< "${IMAGE_REFS}"
314+ image_ref="${image_refs[0]}"
315+ if [[ -z "${image_ref}" ]]; then
316+ echo "::error::No arm64 image ref resolved for runtime template smoke"
317+ exit 1
318+ fi
319+ docker run --rm --entrypoint /bin/sh "${image_ref}" -lc '
320+ set -eu
321+ test -f /app/src/agents/templates/HEARTBEAT.md
322+ temp_root="$(mktemp -d)"
323+ trap "rm -rf \"${temp_root}\"" EXIT
324+ mkdir -p "${temp_root}/home" "${temp_root}/cwd"
325+ cd "${temp_root}/cwd"
326+ set +e
327+ HOME="${temp_root}/home" \
328+ USERPROFILE="${temp_root}/home" \
329+ OPENCLAW_HOME="${temp_root}/home" \
330+ OPENCLAW_NO_ONBOARD=1 \
331+ OPENCLAW_SUPPRESS_NOTES=1 \
332+ OPENCLAW_DISABLE_BUNDLED_PLUGINS=1 \
333+ OPENCLAW_DISABLE_BUNDLED_ENTRY_SOURCE_FALLBACK=1 \
334+ AWS_EC2_METADATA_DISABLED=true \
335+ AWS_SHARED_CREDENTIALS_FILE="${temp_root}/home/.aws/credentials" \
336+ AWS_CONFIG_FILE="${temp_root}/home/.aws/config" \
337+ node /app/openclaw.mjs agent --message "workspace bootstrap smoke" --session-id "workspace-bootstrap-smoke" --local --timeout 1 --json \
338+ >"${temp_root}/out.log" 2>&1
339+ status="$?"
340+ set -e
341+ if grep -F "Missing workspace template:" "${temp_root}/out.log"; then
342+ cat "${temp_root}/out.log"
343+ exit 1
344+ fi
345+ test -f "${temp_root}/home/.openclaw/workspace/HEARTBEAT.md"
346+ if [ "${status}" -ne 0 ]; then
347+ cat "${temp_root}/out.log"
348+ fi
349+ '
350+263351 # Create multi-platform manifests
264352create-manifest:
265353needs: [approve_manual_backfill, build-amd64, build-arm64]
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。