fix(ci): strip JSON5 comments from manifest.json before clone-manifest.sh
Some checks failed
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 20s
Harness Replays / detect-changes (pull_request) Successful in 20s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 19s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 21s
E2E API Smoke Test / detect-changes (pull_request) Successful in 1m6s
CI / Detect changes (pull_request) Successful in 1m9s
qa-review / approved (pull_request) Failing after 18s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 1m4s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 1m3s
gate-check-v3 / gate-check (pull_request) Successful in 32s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 58s
security-review / approved (pull_request) Failing after 21s
sop-tier-check / tier-check (pull_request) Successful in 19s
Harness Replays / Harness Replays (pull_request) Successful in 17s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 11s
CI / Python Lint & Test (pull_request) Successful in 12s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 12s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Failing after 5m44s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 6m33s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 8m57s
CI / Platform (Go) (pull_request) Failing after 13m12s
CI / Canvas (Next.js) (pull_request) Failing after 13m27s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / all-required (pull_request) Failing after 7s

Integration Tester appends a trailing `// Triggered by ...` comment to
manifest.json on each run. This is valid JSON5 but breaks `jq` which
clone-manifest.sh uses to parse the file — causing
publish-workspace-server-image and harness-replays to fail on every run.

Fix: pipe manifest.json through `sed '/^[[:space:]]*\/\//d'` before
passing to clone-manifest.sh, producing a clean JSON file for jq.

harness-replays.yml: also downgrade the missing-token check from
`exit 1` to a warning, consistent with publish-workspace-server-image.yml.
All repos are public per the manifest.json OSS surface contract — token
is only needed for private repos.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Molecule AI · infra-runtime-be 2026-05-11 22:10:24 +00:00
parent c58aef31e7
commit cec59b5ea8
2 changed files with 9 additions and 4 deletions

View File

@ -220,12 +220,14 @@ jobs:
run: |
set -euo pipefail
if [ -z "${MOLECULE_GITEA_TOKEN}" ]; then
echo "::error::AUTO_SYNC_TOKEN secret is empty — register the devops-engineer persona PAT in repo Actions secrets"
exit 1
echo "::warning::AUTO_SYNC_TOKEN not set — using anonymous clone (repos are public per manifest.json OSS contract)"
fi
mkdir -p .tenant-bundle-deps
# Strip JSON5 comments before jq parsing — Integration Tester appends
# `// Triggered by ...` which breaks `jq` in clone-manifest.sh.
sed '/^[[:space:]]*\/\//d' manifest.json > .manifest-stripped.json
bash scripts/clone-manifest.sh \
manifest.json \
.manifest-stripped.json \
.tenant-bundle-deps/workspace-configs-templates \
.tenant-bundle-deps/org-templates \
.tenant-bundle-deps/plugins

View File

@ -96,8 +96,11 @@ jobs:
# 2026-05-08 migration). The token is only needed for private repos.
# Do NOT require it — a missing secret would fail the build unnecessarily.
mkdir -p .tenant-bundle-deps
# Strip JSON5 comments before jq parsing — Integration Tester appends
# `// Triggered by ...` which breaks `jq` in clone-manifest.sh.
sed '/^[[:space:]]*\/\//d' manifest.json > .manifest-stripped.json
bash scripts/clone-manifest.sh \
manifest.json \
.manifest-stripped.json \
.tenant-bundle-deps/workspace-configs-templates \
.tenant-bundle-deps/org-templates \
.tenant-bundle-deps/plugins