Dashboard › craft › Distillation
09f18774-19ee-4f12-8b21-d2d3476b5ad2["lore_tm_v1_t_tln5HHiTsFAyt7IJ_ydLiAOw59Vo1Gxpwk2zPrUY0","lore_tm_v1__DhVRvPmODi77J_mzMnkGhyOa5G6t3YLXaeCPfQZ0qA","lore_tm_v1_k09ef14f_pn0mvH_Ww5N_rZtMLOEQLaJVy6PFn9Yty0"]
Date: Sep 8, 2026
src/publish/__tests__/resolve-location.js imports spawnSync from "child_process" and expect, test from "vitest"; script is new URL("../resolve-location.js", import.meta.url).pathname.src/publish/__tests__/resolve-location.js test "rejects missing workflow input through location validation" runs spawnSync(process.execPath, [script], { encoding: "utf8", env: { ...process.env, PUBLISH_ARGS: "", CRAFT_WORKSPACE_NAMES: "[]" } }); it expects nonzero result.status, result.stderr containing "Invalid publish path.", and not containing "Unexpected end of JSON input".src/publish/__tests__/resolve-release-revision.js imports spawnSync from "child_process" and expect, test from "vitest"; script is new URL("../resolve-release-revision.js", import.meta.url).pathname.src/publish/__tests__/resolve-release-revision.js test "rejects missing workflow input through release revision validation" runs spawnSync(process.execPath, [script], { encoding: "utf8", env: { ...process.env, PUBLISH_ARGS: "", PUBLISH_ISSUE_BODY: "" } }); it expects nonzero result.status, result.stderr containing "Publish input must define a repository.", and not containing "Unexpected end of JSON input".ci-ready label.ci-pending and removing ci-failed on retry; ci-ready is used to avoid an auto-approve/CI-verification race because the poller’s later --add-label does not generate the desired triggering event.ci-pending; it runs on ubuntu-latest, checks out with actions/checkout@v6, and sets up Node.js 24.node .__publish__/src/publish/discover-location.js, publishes through Craft after changing directory to __repo__/${{ fromJSON(steps.location.outputs.result).path }}, and sets XDG_STATE_HOME: /github/workspace/.craft-state.COCOAPODS_TRUNK_TOKEN, TWINE_USERNAME: __token__, AWS_SECRET_ACCESS_KEY, and PUBDEV_ACCESS_TOKEN; subsequent named steps inform about cancellation, inform about failure, and close on success.