From f75dd6564bb646f95277dc8c3b80612e46a4a1ea Mon Sep 17 00:00:00 2001 From: Sean Klein Date: Tue, 27 Jul 2021 02:19:12 -0400 Subject: [PATCH] Fix same_content_new bug (runs would be inappropriately skipped) (#125) * Fix same_content_new bug (runs would be inappropriately skipped) Context: https://github.com/fkirc/skip-duplicate-actions/issues/124 * Add compiled js --- dist/index.js | 22 ++++++++++------------ src/index.ts | 20 +++++++++----------- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/dist/index.js b/dist/index.js index a8cf72c..49e7423 100644 --- a/dist/index.js +++ b/dist/index.js @@ -10064,20 +10064,18 @@ function detectConcurrentRuns(context) { exitSuccess({ shouldSkip: true }); } } - else if (context.concurrentSkipping === "same_content" || context.concurrentSkipping === "same_content_newer") { + else if (context.concurrentSkipping === "same_content") { const concurrentDuplicate = concurrentRuns.find((run) => run.treeHash === context.currentRun.treeHash); if (concurrentDuplicate) { - if (context.concurrentSkipping === "same_content") { - core.info(`Skip execution because the exact same files are concurrently checked in ${concurrentDuplicate.html_url}`); - exitSuccess({ shouldSkip: true }); - } - else if (context.concurrentSkipping === "same_content_newer") { - const concurrentIsOlder = concurrentRuns.find((run) => run.runNumber < context.currentRun.runNumber); - if (concurrentIsOlder) { - core.info(`Skip execution because the exact same files are concurrently checked in older ${concurrentDuplicate.html_url}`); - exitSuccess({ shouldSkip: true }); - } - } + core.info(`Skip execution because the exact same files are concurrently checked in ${concurrentDuplicate.html_url}`); + exitSuccess({ shouldSkip: true }); + } + } + else if (context.concurrentSkipping === "same_content_newer") { + const concurrentIsOlder = concurrentRuns.find((run) => (run.treeHash === context.currentRun.treeHash) && (run.runNumber < context.currentRun.runNumber)); + if (concurrentIsOlder) { + core.info(`Skip execution because the exact same files are concurrently checked in older ${concurrentIsOlder.html_url}`); + exitSuccess({ shouldSkip: true }); } } core.info(`Did not find any skippable concurrent workflow-runs`); diff --git a/src/index.ts b/src/index.ts index 29de9ae..c9aa77b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -230,19 +230,17 @@ function detectConcurrentRuns(context: WRunContext) { core.info(`Skip execution because a newer instance of the same workflow is running in ${newerRun.html_url}`); exitSuccess({ shouldSkip: true }); } - } else if (context.concurrentSkipping === "same_content" || context.concurrentSkipping === "same_content_newer") { + } else if (context.concurrentSkipping === "same_content") { const concurrentDuplicate = concurrentRuns.find((run) => run.treeHash === context.currentRun.treeHash); if (concurrentDuplicate) { - if (context.concurrentSkipping === "same_content") { - core.info(`Skip execution because the exact same files are concurrently checked in ${concurrentDuplicate.html_url}`); - exitSuccess({ shouldSkip: true }); - } else if (context.concurrentSkipping === "same_content_newer") { - const concurrentIsOlder = concurrentRuns.find((run) => run.runNumber < context.currentRun.runNumber); - if (concurrentIsOlder) { - core.info(`Skip execution because the exact same files are concurrently checked in older ${concurrentDuplicate.html_url}`); - exitSuccess({ shouldSkip: true }); - } - } + core.info(`Skip execution because the exact same files are concurrently checked in ${concurrentDuplicate.html_url}`); + exitSuccess({ shouldSkip: true }); + } + } else if (context.concurrentSkipping === "same_content_newer") { + const concurrentIsOlder = concurrentRuns.find((run) => (run.treeHash === context.currentRun.treeHash) && (run.runNumber < context.currentRun.runNumber)); + if (concurrentIsOlder) { + core.info(`Skip execution because the exact same files are concurrently checked in older ${concurrentIsOlder.html_url}`); + exitSuccess({ shouldSkip: true }); } } core.info(`Did not find any skippable concurrent workflow-runs`);