diff --git a/actions/setup/js/add_comment.cjs b/actions/setup/js/add_comment.cjs index d8ae88b7736..72ed50ff224 100644 --- a/actions/setup/js/add_comment.cjs +++ b/actions/setup/js/add_comment.cjs @@ -330,6 +330,7 @@ async function main(config = {}) { core.warning(`Skipping add_comment: max count of ${maxCount} reached`); return { success: false, + skipped: true, error: `Max count of ${maxCount} reached`, }; } diff --git a/actions/setup/js/add_comment.test.cjs b/actions/setup/js/add_comment.test.cjs index 625f8e671e9..25438cef186 100644 --- a/actions/setup/js/add_comment.test.cjs +++ b/actions/setup/js/add_comment.test.cjs @@ -2027,6 +2027,7 @@ describe("add_comment", () => { expect(result1.success).toBe(true); expect(result2.success).toBe(true); expect(result3.success).toBe(false); + expect(result3.skipped).toBe(true); expect(result3.error).toMatch(/max count/i); }); }); diff --git a/actions/setup/js/safe_output_handler_manager.cjs b/actions/setup/js/safe_output_handler_manager.cjs index 54b0c612220..6ba10b9bfb7 100644 --- a/actions/setup/js/safe_output_handler_manager.cjs +++ b/actions/setup/js/safe_output_handler_manager.cjs @@ -481,9 +481,7 @@ async function processMessages(messageHandlers, messages, onItemCreated = null) // Skipped results should NOT trigger fail-fast cancellation of subsequent messages. if (result && result.success === false && result.skipped === true && !result.deferred) { const msg = result.error || "Handler returned success: false with skipped: true"; - if (CODE_PUSH_TYPES.has(messageType)) { - core.info(`⏭ Message ${i + 1} (${messageType}) skipped — ${msg}`); - } + core.info(`⏭ Message ${i + 1} (${messageType}) skipped — ${msg}`); results.push({ type: messageType, messageIndex: i, @@ -1090,6 +1088,7 @@ async function main() { const skippedStandaloneResults = processingResult.results.filter(r => r.skipped && r.reason === "Handled by standalone step"); const skippedCustomJobResults = processingResult.results.filter(r => r.skipped && r.reason === "Handled by custom safe output job"); const skippedNoHandlerResults = processingResult.results.filter(r => !r.success && !r.skipped && r.error?.includes("No handler loaded")); + const skippedHandlerResults = processingResult.results.filter(r => r.skipped && !r.reason && !r.deferred && !r.cancelled); core.info(`\n=== Processing Summary ===`); core.info(`Total messages: ${processingResult.results.length}`); @@ -1101,6 +1100,11 @@ async function main() { if (deferredCount > 0) { core.info(`Deferred: ${deferredCount}`); } + if (skippedHandlerResults.length > 0) { + core.info(`Skipped (no context or limit reached): ${skippedHandlerResults.length}`); + const skippedHandlerTypes = [...new Set(skippedHandlerResults.map(r => r.type))]; + core.info(` Types: ${skippedHandlerTypes.join(", ")}`); + } if (skippedStandaloneResults.length > 0) { core.info(`Skipped (standalone step): ${skippedStandaloneResults.length}`); const standaloneTypes = [...new Set(skippedStandaloneResults.map(r => r.type))];