Dashboard › publish › Distillation
5c2b9bac-2c32-4627-8a1f-0262b7530f8f["lore_tm_v1_70jTYrudc3oVImxJakoaLkacHr-xVbgf7qBe3ITgifg","lore_tm_v1_1ocO-ASYZa_9-GBQWe5Hjp0as_gZWpD0zUHhrq2hBh4","lore_tm_v1_dhxmKvmGDeIGaTm6RJL3oO4aMKZ-STYkB8NL5Nj2Sqk","lore_tm_v1_OcUkE7eObFMZa-LDx4f9y-tP_W_SCyHvHxY-t-4_QPY","lore_tm_v1_9AxRwKIp1ZSYJUpMXEM10JLFw6FVxrYhch61j73lOHM","lore_tm_v1_yKcZKoBiruR__dzRKuUUERc3YsbcKBQTHNGf1GDaHOU","lore_tm_v1_dUFhhXUARWWkTMXna1RaxRWrHVvkUurLO7FUd8K4nOM","lore_tm_v1_QZ02SQmlCykc8r4Nsuy31V8lAd-cZYe6cl0q3BaMYQ0","lore_tm_v1_RLqtF0REEKcLK_bxKFSfVBG2iOjE8BaIddnAeIH8p70","lore_tm_v1_ElKY904c8R8vfuMEbrRl66b4ylqCjfQZaXI8PNULBBo","lore_tm_v1_C_YAVwwjCJomAzeS_KRYEA28g6Xf0c9JiTNiq-DjqqA","lore_tm_v1_uWv-4doyGjVqnL7k81mq9LoReFmBn9whmI3dogqyjgA","lore_tm_v1_b-2S3QWkjXpNpzglomo2DiQsI7FhPKlYnqoaEaCsRVQ","lore_tm_v1_WMWYzuA2YzrLs2tdZ78zGizodJMtah7P74cLT4zdWQk","lore_tm_v1_58vZCufYu4mGwwDfoIcLlpo4ju6MuEsvT2BJAKR26dw","lore_tm_v1_qQuBuApVMnqrf-KHIveQ5tqgCrPyxEqHriZTwMP3O_o","lore_tm_v1_567cytepw9jIh94ZK0FZnNKHg218Ohciau-uYiM6mJw","lore_tm_v1_u3yGSV36ye7NUhTKq_QPFPTM-e41bhFRVw2UDJ_WIkE","lore_tm_v1_finJpeIpQKXTGT6VI1bd1LybCZRKY7w-s9gbk4C-zzY","lore_tm_v1_TuW_apZ5m7cpvczoNQGs0STgy-peJAFeRbvHAMVz7_c","lore_tm_v1_bHzkc0gLOb9xGDq5Zgf5gZC1Uvn0XgjFWaUltIxk9FM"]
ci-ready; the publish job fires only on ci-ready label events, not accepted, to avoid racing with waiting-for-ci..github/workflows/publish.yml and src/modules/process-end-state.js to consume approval immediately before Craft, reconcile terminal authorization state twice using the built-in gh CLI, and close successful issues before optional reporting.accepted, ci-pending, and ci-ready; on steps.publish.outcome == 'success', it also closes the issue with --state closed. Reconciliation steps use if: always() and continue-on-error: true.yarn vitest run src/publish/__tests__/publish-workflow.js src/modules/__tests__/publish-workflow.js src/modules/__tests__/process-end-state.js src/modules/__tests__/update-issue.js --printConsoleTrace with Vitest v4.1.0. Result: 4 test files, 22 tests; 3 files passed and 1 failed; 21 tests passed and 1 failed; duration 973ms; exit code 1.publish workflow > reconciles authorization without Node before and after terminal reporting at src/publish/__tests__/publish-workflow.js:90. The test expected literal GitHub-expression text steps.publish.outcome == 'success', while .github/workflows/publish.yml correctly used Bash syntax if [[ "${{ steps.publish.outcome }}" == "success" ]]; then; this was a test assertion defect rather than a workflow behavior failure.src/publish/post-result.js: absent or malformed PUBLISH_ARGS must still invoke terminal reporting with empty inputs instead of crashing during JSON.parse; asynchronous reporting failures should set the step exit code.src/publish/__tests__/publish-workflow.js and added src/publish/__tests__/post-result.js with 2 entry-point tests: reports terminal state when publish inputs are undefined and reports terminal state when publish inputs are not-json.yarn vitest run src/publish/__tests__/post-result.js src/publish/__tests__/publish-workflow.js src/modules/__tests__/process-end-state.js --printConsoleTrace. Result: 3 test files, 12 tests; 1 file passed and 2 failed; 9 tests passed and 3 failed; duration 924ms; exit code 1.src/publish/__tests__/post-result.js tests failed before reaching input parsing because src/publish/post-result.js obtained its GitHub client at module load via github.getOctokit(getGitHubToken()); src/libs/github.js:9 threw No "GITHUB_TOKEN" environment variable found. Please ensure the workflow is configured correctly.require("../libs/github"), causing the real getGitHubToken() to run. The reporting entry pointβs module-load side effects also made setup/parsing-stage failure reporting impossible.Update completed targets and remove label step and therefore found run: node .__publish__/src/publish/update-issue.js. Root cause was an overbroad test slice, not Node usage inside the reconciliation shell step.src/publish/update-issue.js was identified as the desired entry-point pattern: main() creates context and octokit, parses PUBLISH_ARGS inside the function, catches malformed JSON with warning Could not parse publish inputs; skipping target update, awaits updateIssue({ context, octokit, inputs }), sets process.exitCode = 1 on rejected direct execution, and exports { main }.src/publish/post-result.js: moved GitHub setup and PUBLISH_ARGS parsing into exported async main(), defaults malformed or missing inputs to {}, awaits terminal reporting, and avoids module-load execution side effects. Also updated src/publish/__tests__/post-result.js and bounded each reconciliation assertion in src/publish/__tests__/publish-workflow.js to exactly one shell-only workflow step.yarn vitest run src/publish/__tests__/post-result.js src/publish/__tests__/publish-workflow.js src/modules/__tests__/publish-workflow.js src/modules/__tests__/process-end-state.js src/modules/__tests__/update-issue.js --printConsoleTrace. Result: 5 test files, 24 tests; 4 files passed and 1 failed; 22 tests passed and 2 failed; duration 1.25s; exit code 1.src/publish/__tests__/post-result.js cases, both at src/publish/post-result.js:7, because the real getGitHubToken() still required GITHUB_TOKEN. The workflow and module lifecycle tests all passed.post-result.js behavior was considered correct; the remaining issue was solely that the token-helper mock did not intercept CommonJS resolution. Chosen test fix: provide the real helperβs required GITHUB_TOKEN environment variable while retaining mocked @actions/github client and end-state reporting function.src/publish/__tests__/post-result.js to supply GITHUB_TOKEN; no subsequent test-run result was shown.