From 4267eee56034cc3ee6f2fef9bdc3cc125ca073db Mon Sep 17 00:00:00 2001 From: Martin Gerlach Date: Thu, 9 Oct 2025 02:31:05 +0200 Subject: [PATCH] fix: improves result handling in windUpJob.task.js Promise was checked before resolving, so the first early return never happened (Promises are truthy) and the subsequent `if (lastRelease.version)` check produced an error in some cases(`lastRelease` undefined, "Error: TypeError: Cannot read properties of undefined (reading 'version')"). Observed for semantic-release-action 4.2.2 and 5.0.0 with semantic_version > 24.2.6 (not observed with 24.2.6). The PR prevents reading properties of "undefined". --- src/windUpJob.task.js | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/windUpJob.task.js b/src/windUpJob.task.js index 9a500a9..2a94f70 100644 --- a/src/windUpJob.task.js +++ b/src/windUpJob.task.js @@ -7,23 +7,29 @@ const outputs = require('./outputs.json'); * @returns {Promise} */ module.exports = async (result) => { - if (!result) { + const resolved = await result; + if (!resolved) { core.debug('No release published.'); - return Promise.resolve(); + return; } - const {lastRelease, commits, nextRelease, releases} = await result; + const { + lastRelease = {}, + commits = [], + nextRelease = {}, + releases = [], + } = resolved; - if (lastRelease.version) { + if (lastRelease?.version) { core.debug(`The last release was "${lastRelease.version}".`); core.setOutput(outputs.last_release_version, lastRelease.version); core.setOutput(outputs.last_release_git_head, lastRelease.gitHead); core.setOutput(outputs.last_release_git_tag, lastRelease.gitTag); } - + if (!nextRelease) { core.debug('No release published.'); - return Promise.resolve(); + return; } core.debug(`Published ${nextRelease.type} release version ${nextRelease.version} containing ${commits.length} commits.`);