From 3d4cf50fd5aa99f63ad5998199b9518f5a790948 Mon Sep 17 00:00:00 2001 From: Cory Knox Date: Mon, 3 Feb 2025 13:27:00 -0800 Subject: [PATCH] (#174) Don't always push latest tag to docker Update Docker build to only set latest tag when it is the latest build. Previously we would set the latest tag on every tagged build which means that pre-release and support builds would get tagged as latest. This corrects that. --- Chocolatey.Cake.Recipe/Content/docker.cake | 24 ++++++++++++---------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/Chocolatey.Cake.Recipe/Content/docker.cake b/Chocolatey.Cake.Recipe/Content/docker.cake index f55996e..e21e560 100644 --- a/Chocolatey.Cake.Recipe/Content/docker.cake +++ b/Chocolatey.Cake.Recipe/Content/docker.cake @@ -66,7 +66,7 @@ BuildParameters.Tasks.DockerPush = Task("DockerPush") }); BuildParameters.Tasks.DockerTagAsLatest = Task("DockerTagAsLatest") - .WithCriteria(() => BuildParameters.IsTagged && BuildParameters.Version.MajorMinorPatch == BuildParameters.Version.FullSemVersion, "Skipping because this isn't a tagged full release build.") + .WithCriteria(() => BuildParameters.BranchType == BranchType.Master && BuildParameters.IsTagged && BuildParameters.Version.MajorMinorPatch == BuildParameters.Version.FullSemVersion, "Skipping because this isn't a tagged full release build.") .WithCriteria(() => BuildParameters.DockerCredentials.HasCredentials, "Skipping because Docker Credentials were not provided.") .WithCriteria(() => BuildParameters.ShouldRunDocker, "Skipping because running Docker tasks is not enabled") .IsDependentOn("DockerLogin") @@ -116,14 +116,16 @@ BuildParameters.Tasks.DockerManifest = Task("DockerManifest") DockerManifestPush(manifestListName); - // Create the latest manifest - DockerManifestCreate( - string.Format("{0}/{1}:latest", BuildParameters.RepositoryOwner, BuildParameters.RepositoryName), - string.Format("{0}/{1}:latest-windows", BuildParameters.RepositoryOwner, BuildParameters.RepositoryName), - new string[] { - string.Format("{0}/{1}:latest-linux", BuildParameters.RepositoryOwner, BuildParameters.RepositoryName) - } - ); - - DockerManifestPush(string.Format("{0}/{1}:latest", BuildParameters.RepositoryOwner, BuildParameters.RepositoryName)); + // Create the latest manifest only if this is the master branch. + if (BuildParameters.BranchType == BranchType.Master) { + DockerManifestCreate( + string.Format("{0}/{1}:latest", BuildParameters.RepositoryOwner, BuildParameters.RepositoryName), + string.Format("{0}/{1}:latest-windows", BuildParameters.RepositoryOwner, BuildParameters.RepositoryName), + new string[] { + string.Format("{0}/{1}:latest-linux", BuildParameters.RepositoryOwner, BuildParameters.RepositoryName) + } + ); + + DockerManifestPush(string.Format("{0}/{1}:latest", BuildParameters.RepositoryOwner, BuildParameters.RepositoryName)); + } }); \ No newline at end of file