From 24b9c802af44a61ec99e1d737d3ec9a863921ae7 Mon Sep 17 00:00:00 2001 From: Grace Rehn Date: Fri, 14 Feb 2025 11:24:16 +1000 Subject: [PATCH 1/2] Add IgnoreIfAlreadyExists option to Create Release V6 --- .../CreateOctopusReleaseV6/createRelease.ts | 2 +- .../CreateOctopusReleaseV6/inputCommandBuilder.test.ts | 2 ++ .../CreateOctopusReleaseV6/inputCommandBuilder.ts | 1 + .../CreateOctopusReleaseV6/task.json | 9 +++++++++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/source/tasks/CreateOctopusRelease/CreateOctopusReleaseV6/createRelease.ts b/source/tasks/CreateOctopusRelease/CreateOctopusReleaseV6/createRelease.ts index 47131ad3..56d14a95 100644 --- a/source/tasks/CreateOctopusRelease/CreateOctopusReleaseV6/createRelease.ts +++ b/source/tasks/CreateOctopusRelease/CreateOctopusReleaseV6/createRelease.ts @@ -10,7 +10,7 @@ export async function createReleaseFromInputs(client: Client, command: CreateRel const repository = new ReleaseRepository(client, command.spaceName); const response = await repository.create(command); - client.info(`🎉 Release ${response.ReleaseVersion} created successfully!`); + client.info(`🎉 Release ${response.ReleaseVersion} is ready for deployment!`); task.setOutputVariable("release_number", response.ReleaseVersion); diff --git a/source/tasks/CreateOctopusRelease/CreateOctopusReleaseV6/inputCommandBuilder.test.ts b/source/tasks/CreateOctopusRelease/CreateOctopusReleaseV6/inputCommandBuilder.test.ts index 3996f643..f1f97814 100644 --- a/source/tasks/CreateOctopusRelease/CreateOctopusReleaseV6/inputCommandBuilder.test.ts +++ b/source/tasks/CreateOctopusRelease/CreateOctopusReleaseV6/inputCommandBuilder.test.ts @@ -21,6 +21,7 @@ describe("getInputCommand", () => { task.addVariableString("DefaultPackageVersion", "1.0.1"); task.addVariableString("Packages", "Step1:Foo:1.0.0\nBar:2.0.0"); task.addVariableString("GitRef", "main"); + task.addVariableBoolean("IgnoreIfAlreadyExists", true); const command = createCommandFromInputs(logger, task); expect(command.spaceName).toBe("Default"); @@ -30,6 +31,7 @@ describe("getInputCommand", () => { expect(command.PackageVersion).toBe("1.0.1"); expect(command.Packages).toStrictEqual(["Step1:Foo:1.0.0", "Bar:2.0.0"]); expect(command.GitRef).toBe("main"); + expect(command.IgnoreIfAlreadyExists).toBe(true); expect(task.lastResult).toBeUndefined(); expect(task.lastResultMessage).toBeUndefined(); diff --git a/source/tasks/CreateOctopusRelease/CreateOctopusReleaseV6/inputCommandBuilder.ts b/source/tasks/CreateOctopusRelease/CreateOctopusReleaseV6/inputCommandBuilder.ts index 21444dbe..a6c82c3e 100644 --- a/source/tasks/CreateOctopusRelease/CreateOctopusReleaseV6/inputCommandBuilder.ts +++ b/source/tasks/CreateOctopusRelease/CreateOctopusReleaseV6/inputCommandBuilder.ts @@ -64,6 +64,7 @@ export function createCommandFromInputs(logger: Logger, task: TaskWrapper): Crea ReleaseNotes: task.getInput("ReleaseNotes"), GitRef: task.getInput("GitRef"), GitCommit: task.getInput("GitCommit"), + IgnoreIfAlreadyExists: task.getBoolean("IgnoreIfAlreadyExists") || undefined, }; const releaseNotesFilePath = task.getInput("ReleaseNotesFile"); diff --git a/source/tasks/CreateOctopusRelease/CreateOctopusReleaseV6/task.json b/source/tasks/CreateOctopusRelease/CreateOctopusReleaseV6/task.json index ace50e8d..312c8d72 100644 --- a/source/tasks/CreateOctopusRelease/CreateOctopusReleaseV6/task.json +++ b/source/tasks/CreateOctopusRelease/CreateOctopusReleaseV6/task.json @@ -120,6 +120,15 @@ "helpMarkDown": "Git commit to use when creating the release for version controlled Projects. Use in conjunction with the gitRef parameter to select any previous commit.", "groupName": "versionControl" }, + { + "name": "IgnoreIfAlreadyExists", + "type": "boolean", + "label": "Ignore Existing Release", + "defaultValue": "", + "required": false, + "helpMarkDown": "If enabled will not attempt to create a new release if there is already one with the same version number", + "groupName": "additional" + }, { "name": "AdditionalArguments", "type": "string", From dffb0152447b5744d893ec13e00018a00e8b8c4c Mon Sep 17 00:00:00 2001 From: Grace Rehn Date: Fri, 14 Feb 2025 11:32:59 +1000 Subject: [PATCH 2/2] Update release ready message --- .../CreateOctopusReleaseV6/createRelease.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/source/tasks/CreateOctopusRelease/CreateOctopusReleaseV6/createRelease.ts b/source/tasks/CreateOctopusRelease/CreateOctopusReleaseV6/createRelease.ts index 56d14a95..c912ecd2 100644 --- a/source/tasks/CreateOctopusRelease/CreateOctopusReleaseV6/createRelease.ts +++ b/source/tasks/CreateOctopusRelease/CreateOctopusReleaseV6/createRelease.ts @@ -10,7 +10,11 @@ export async function createReleaseFromInputs(client: Client, command: CreateRel const repository = new ReleaseRepository(client, command.spaceName); const response = await repository.create(command); - client.info(`🎉 Release ${response.ReleaseVersion} is ready for deployment!`); + if (command.IgnoreIfAlreadyExists) { + client.info(`🎉 Release ${response.ReleaseVersion} is ready for deployment!`); + } else { + client.info(`🎉 Release ${response.ReleaseVersion} created successfully!`); + } task.setOutputVariable("release_number", response.ReleaseVersion);