From ce62c8c9e502bec437a8a5e236ae4cbcf50c62a1 Mon Sep 17 00:00:00 2001 From: Jochen Ehret Date: Thu, 15 Jan 2026 09:19:54 +0100 Subject: [PATCH] Enhance "UpdateCompiledReleases" function * allow optional paths in ops file (e.g. "path: /releases/name=pxc?") --- .../compiled_releases_opsfile.go | 2 +- .../compiled_releases_opsfile_test.go | 11 ++++ .../release-may-not-exist-in-template | 0 ...stemcell-1.0-20180808-195254-497840039.tgz | Bin 0 -> 134 bytes .../release-may-not-exist-in-template/sha256 | 1 + .../release-may-not-exist-in-template/url | 1 + .../release-may-not-exist-in-template/version | 1 + .../original_compiled_releases_ops_file.yml | 10 ++++ .../updated_compiled_releases_ops_file.yml | 10 ++++ ...led_releases_ops_file_with_new_release.yml | 10 ++++ ...eleases_ops_file_with_optional_release.yml | 51 ++++++++++++++++++ 11 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 util/update-manifest-releases/fixtures/build-with-compiled-release/release-may-not-exist-in-template-compiled-release-tarball/release-may-not-exist-in-template create mode 100644 util/update-manifest-releases/fixtures/build-with-compiled-release/release-may-not-exist-in-template-compiled-release-tarball/release-may-not-exist-in-template-0.0.1-awesome-stemcell-1.0-20180808-195254-497840039.tgz create mode 100644 util/update-manifest-releases/fixtures/build-with-compiled-release/release-may-not-exist-in-template/sha256 create mode 100644 util/update-manifest-releases/fixtures/build-with-compiled-release/release-may-not-exist-in-template/url create mode 100644 util/update-manifest-releases/fixtures/build-with-compiled-release/release-may-not-exist-in-template/version create mode 100644 util/update-manifest-releases/fixtures/updated_compiled_releases_ops_file_with_optional_release.yml diff --git a/util/update-manifest-releases/compiledreleasesops/compiled_releases_opsfile.go b/util/update-manifest-releases/compiledreleasesops/compiled_releases_opsfile.go index 70e7a330a..73464b7f9 100644 --- a/util/update-manifest-releases/compiledreleasesops/compiled_releases_opsfile.go +++ b/util/update-manifest-releases/compiledreleasesops/compiled_releases_opsfile.go @@ -44,7 +44,7 @@ func UpdateCompiledReleases(releaseNames []string, buildDir string, opsFile []by matchingReleasePath := fmt.Sprintf("/releases/name=%s", releaseName) for i, op := range deserializedOpsFile { - if op.Path == matchingReleasePath { + if op.Path == matchingReleasePath || op.Path == matchingReleasePath+"?" { newRelease, err = getCompiledReleaseForBuild(buildDir, releaseName) if err != nil { return nil, "", err diff --git a/util/update-manifest-releases/compiledreleasesops/compiled_releases_opsfile_test.go b/util/update-manifest-releases/compiledreleasesops/compiled_releases_opsfile_test.go index c933c0651..3bf85daa5 100644 --- a/util/update-manifest-releases/compiledreleasesops/compiled_releases_opsfile_test.go +++ b/util/update-manifest-releases/compiledreleasesops/compiled_releases_opsfile_test.go @@ -85,4 +85,15 @@ var _ = Describe("UpdateCompiledReleases", func() { Expect(commitMessage).To(Equal("Updated compiled releases with no-stemcell-section 0.3.0")) Expect(string(updatedOpsFile)).To(Equal(desiredOpsFile)) }) + + It("updates an optional release (with '?' at end of path)", func() { + releaseNames := []string{"release-may-not-exist-in-template"} + desiredOpsFile, err = os.ReadFile("../fixtures/updated_compiled_releases_ops_file_with_optional_release.yml") + Expect(err).NotTo(HaveOccurred()) + + updatedOpsFile, commitMessage, err := compiledreleasesops.UpdateCompiledReleases(releaseNames, compiledReleaseBuildDir, originalOpsFile, yaml.Marshal, yaml.Unmarshal) + Expect(err).NotTo(HaveOccurred()) + Expect(commitMessage).To(Equal("Updated compiled releases with release-may-not-exist-in-template 0.0.1")) + Expect(updatedOpsFile).To(MatchYAML(desiredOpsFile)) + }) }) diff --git a/util/update-manifest-releases/fixtures/build-with-compiled-release/release-may-not-exist-in-template-compiled-release-tarball/release-may-not-exist-in-template b/util/update-manifest-releases/fixtures/build-with-compiled-release/release-may-not-exist-in-template-compiled-release-tarball/release-may-not-exist-in-template new file mode 100644 index 000000000..e69de29bb diff --git a/util/update-manifest-releases/fixtures/build-with-compiled-release/release-may-not-exist-in-template-compiled-release-tarball/release-may-not-exist-in-template-0.0.1-awesome-stemcell-1.0-20180808-195254-497840039.tgz b/util/update-manifest-releases/fixtures/build-with-compiled-release/release-may-not-exist-in-template-compiled-release-tarball/release-may-not-exist-in-template-0.0.1-awesome-stemcell-1.0-20180808-195254-497840039.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a0ada4f731259d5122c4f7d93ab4450c7ed9d288 GIT binary patch literal 134 zcmV;10D1o(iwFSE$!BQ*11n0+Nlh$H)y++;)XmE;(M_$$EH2T_%+oDN%`M1DEJ8HD85k-U7@C_HnlUICP{D43ptQIou?Xmt o6a!NOOAB+H>VV49((srA^#`0D1*2dTjDkT90Aiw5&Hx4g0J&H-#Q*>R literal 0 HcmV?d00001 diff --git a/util/update-manifest-releases/fixtures/build-with-compiled-release/release-may-not-exist-in-template/sha256 b/util/update-manifest-releases/fixtures/build-with-compiled-release/release-may-not-exist-in-template/sha256 new file mode 100644 index 000000000..bf454d850 --- /dev/null +++ b/util/update-manifest-releases/fixtures/build-with-compiled-release/release-may-not-exist-in-template/sha256 @@ -0,0 +1 @@ +release-sha256 diff --git a/util/update-manifest-releases/fixtures/build-with-compiled-release/release-may-not-exist-in-template/url b/util/update-manifest-releases/fixtures/build-with-compiled-release/release-may-not-exist-in-template/url new file mode 100644 index 000000000..ad48a1eba --- /dev/null +++ b/util/update-manifest-releases/fixtures/build-with-compiled-release/release-may-not-exist-in-template/url @@ -0,0 +1 @@ +release-url diff --git a/util/update-manifest-releases/fixtures/build-with-compiled-release/release-may-not-exist-in-template/version b/util/update-manifest-releases/fixtures/build-with-compiled-release/release-may-not-exist-in-template/version new file mode 100644 index 000000000..6e8bf73aa --- /dev/null +++ b/util/update-manifest-releases/fixtures/build-with-compiled-release/release-may-not-exist-in-template/version @@ -0,0 +1 @@ +0.1.0 diff --git a/util/update-manifest-releases/fixtures/original_compiled_releases_ops_file.yml b/util/update-manifest-releases/fixtures/original_compiled_releases_ops_file.yml index a25759634..c5191ed4c 100644 --- a/util/update-manifest-releases/fixtures/original_compiled_releases_ops_file.yml +++ b/util/update-manifest-releases/fixtures/original_compiled_releases_ops_file.yml @@ -39,3 +39,13 @@ version: "0.0" url: https://storage.googleapis.com/cf-deployment-compiled-releases/more-than-1-0.0.0-cute-stemcell-0.0-20180808-202210-307673159.tgz version: 0.0.1 +- path: /releases/name=release-may-not-exist-in-template? + type: replace + value: + name: release-may-not-exist-in-template + sha1: sha256:b52cb52c940719d52588b5e8fc48e9b645bf1ce5a250f4bad00a1e3851a37874 + stemcell: + os: cute-stemcell + version: "0.0" + url: https://storage.googleapis.com/cf-deployment-compiled-releases/release-may-not-exist-in-template-0.0.0-cute-stemcell-0.0-20180808-202210-307673159.tgz + version: 0.0.1 \ No newline at end of file diff --git a/util/update-manifest-releases/fixtures/updated_compiled_releases_ops_file.yml b/util/update-manifest-releases/fixtures/updated_compiled_releases_ops_file.yml index 26a440474..83955d4af 100644 --- a/util/update-manifest-releases/fixtures/updated_compiled_releases_ops_file.yml +++ b/util/update-manifest-releases/fixtures/updated_compiled_releases_ops_file.yml @@ -39,3 +39,13 @@ version: "0.0" url: https://storage.googleapis.com/cf-deployment-compiled-releases/more-than-1-0.0.0-cute-stemcell-0.0-20180808-202210-307673159.tgz version: 0.0.1 +- path: /releases/name=release-may-not-exist-in-template? + type: replace + value: + name: release-may-not-exist-in-template + sha1: sha256:b52cb52c940719d52588b5e8fc48e9b645bf1ce5a250f4bad00a1e3851a37874 + stemcell: + os: cute-stemcell + version: "0.0" + url: https://storage.googleapis.com/cf-deployment-compiled-releases/release-may-not-exist-in-template-0.0.0-cute-stemcell-0.0-20180808-202210-307673159.tgz + version: 0.0.1 \ No newline at end of file diff --git a/util/update-manifest-releases/fixtures/updated_compiled_releases_ops_file_with_new_release.yml b/util/update-manifest-releases/fixtures/updated_compiled_releases_ops_file_with_new_release.yml index 3bbd10d1b..a40b665ce 100644 --- a/util/update-manifest-releases/fixtures/updated_compiled_releases_ops_file_with_new_release.yml +++ b/util/update-manifest-releases/fixtures/updated_compiled_releases_ops_file_with_new_release.yml @@ -38,6 +38,16 @@ version: "0.0" url: https://storage.googleapis.com/cf-deployment-compiled-releases/more-than-1-0.0.0-cute-stemcell-0.0-20180808-202210-307673159.tgz version: 0.0.1 +- path: /releases/name=release-may-not-exist-in-template? + type: replace + value: + name: release-may-not-exist-in-template + sha1: sha256:b52cb52c940719d52588b5e8fc48e9b645bf1ce5a250f4bad00a1e3851a37874 + stemcell: + os: cute-stemcell + version: "0.0" + url: https://storage.googleapis.com/cf-deployment-compiled-releases/release-may-not-exist-in-template-0.0.0-cute-stemcell-0.0-20180808-202210-307673159.tgz + version: 0.0.1 - path: /releases/name=extraneous type: replace value: diff --git a/util/update-manifest-releases/fixtures/updated_compiled_releases_ops_file_with_optional_release.yml b/util/update-manifest-releases/fixtures/updated_compiled_releases_ops_file_with_optional_release.yml new file mode 100644 index 000000000..2f9b5166d --- /dev/null +++ b/util/update-manifest-releases/fixtures/updated_compiled_releases_ops_file_with_optional_release.yml @@ -0,0 +1,51 @@ +--- +- path: /releases/name=test + type: replace + value: + name: test + sha1: sha256:280c8373b5cc2d96119e00f10e496b54e44e4e34fae2415718ac3b90558e26e5 + stemcell: + os: cute-stemcell + version: "0.0" + url: https://storage.googleapis.com/cf-deployment-compiled-releases/test-0.0.0-cute-stemcell-0.0-20180808-202210-307673159.tgz + version: 0.0.0 +- path: /releases/name=test-agent + type: replace + value: + name: test-agent + sha1: sha256:bb7252db83b8037f44696af7bdb80a8c92e2f79e6ca1001222db7171b3c694e8 + stemcell: + os: cute-stemcell + version: "0.0" + url: https://storage.googleapis.com/cf-deployment-compiled-releases/test-agent-0.0.0-cute-stemcell-0.0-20180808-202210-307673159.tgz + version: 0.0.0 +- path: /releases/name=no-version + type: replace + value: + name: no-version + sha1: sha256:085b6b4a335f5d6f54b55e831ff125c5b7f95ecb85c89e06a932dec56dc7d077 + stemcell: + os: cute-stemcell + version: "0.0" + url: https://storage.googleapis.com/cf-deployment-compiled-releases/no-version-0.0.0-cute-stemcell-0.0-20180808-202210-307673159.tgz + version: 0.0.1 +- path: /releases/name=more-than-1 + type: replace + value: + name: more-than-1 + sha1: sha256:a69d14ddcc53531e044e69c9c6db33a51500a5e3f851666ee3946d27cd5e3996 + stemcell: + os: cute-stemcell + version: "0.0" + url: https://storage.googleapis.com/cf-deployment-compiled-releases/more-than-1-0.0.0-cute-stemcell-0.0-20180808-202210-307673159.tgz + version: 0.0.1 +- path: /releases/name=release-may-not-exist-in-template? + type: replace + value: + name: release-may-not-exist-in-template + sha1: sha256:b52cb52c940719d52588b5e8fc48e9b645bf1ce5a250f4bad00a1e3851a37874 + stemcell: + os: awesome-stemcell + version: "1.0" + url: https://storage.googleapis.com/cf-deployment-compiled-releases/release-may-not-exist-in-template-0.0.1-awesome-stemcell-1.0-20180808-195254-497840039.tgz + version: 0.0.1 \ No newline at end of file