From dbe96ca11da2ac0e8943a90ab421f61ce2311f53 Mon Sep 17 00:00:00 2001 From: Hongming Wang Date: Thu, 16 Apr 2026 08:20:43 -0700 Subject: [PATCH] fix(ci): replace heredoc JSON with printf in publish workflows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The heredoc block writing Docker config.json had unindented `{` at column 1, which GitHub Actions' YAML parser interpreted as a flow mapping start — causing every publish-platform-image and publish-canvas-image run to fail with 0 jobs (startup_failure). Replace `cat <<'JSON' ... JSON` with a single `printf` call that produces identical config.json content without confusing the parser. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/publish-canvas-image.yml | 10 ++-------- .github/workflows/publish-platform-image.yml | 18 +++++------------- 2 files changed, 7 insertions(+), 21 deletions(-) diff --git a/.github/workflows/publish-canvas-image.yml b/.github/workflows/publish-canvas-image.yml index 557a11d1..d9cbda30 100644 --- a/.github/workflows/publish-canvas-image.yml +++ b/.github/workflows/publish-canvas-image.yml @@ -53,17 +53,11 @@ jobs: run: | set -euo pipefail mkdir -p "${RUNNER_TEMP}/docker-config" - cat > "${RUNNER_TEMP}/docker-config/config.json" <<'JSON' -{ - "auths": {}, - "credsStore": "", - "credHelpers": {} -} -JSON + printf '{"auths":{},"credsStore":"","credHelpers":{}}\n' > "${RUNNER_TEMP}/docker-config/config.json" echo "DOCKER_CONFIG=${RUNNER_TEMP}/docker-config" >> "${GITHUB_ENV}" echo "=== config.json ===" cat "${RUNNER_TEMP}/docker-config/config.json" - echo "=== Runner docker diagnostics ===" + echo "=== docker ===" command -v docker || echo "(docker not in PATH)" docker --version 2>&1 || true diff --git a/.github/workflows/publish-platform-image.yml b/.github/workflows/publish-platform-image.yml index 7fcdc1d8..6e848265 100644 --- a/.github/workflows/publish-platform-image.yml +++ b/.github/workflows/publish-platform-image.yml @@ -66,21 +66,13 @@ jobs: run: | set -euo pipefail mkdir -p "${RUNNER_TEMP}/docker-config" - cat > "${RUNNER_TEMP}/docker-config/config.json" <<'JSON' -{ - "auths": {}, - "credsStore": "", - "credHelpers": {} -} -JSON + printf '{"auths":{},"credsStore":"","credHelpers":{}}\n' > "${RUNNER_TEMP}/docker-config/config.json" echo "DOCKER_CONFIG=${RUNNER_TEMP}/docker-config" >> "${GITHUB_ENV}" - echo "=== Runner docker diagnostics ===" - echo "PATH=$PATH" - command -v docker || echo "(docker not in PATH — the runner is missing the Docker CLI or it's not symlinked to a visible location)" - docker --version 2>&1 || true - ls -la /usr/local/bin/docker /opt/homebrew/bin/docker 2>&1 || true - echo "=== config.json after setup ===" + echo "=== config.json ===" cat "${RUNNER_TEMP}/docker-config/config.json" + echo "=== docker ===" + command -v docker || echo "(docker not in PATH)" + docker --version 2>&1 || true - name: Set up QEMU # Required on the Apple-silicon self-hosted runner — Fly tenant machines