From af2b55660765ce937906d8edb109173b7576b23c Mon Sep 17 00:00:00 2001 From: Vincent Demeester Date: Mon, 19 Oct 2020 19:03:08 +0200 Subject: [PATCH] =?UTF-8?q?release:=20fix=20koparse=20behavior=20on=20find?= =?UTF-8?q?ing=20images=20=F0=9F=96=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Recent `ko` version *may* rework a bit the yaml and we *may* end up in having multiple image to find on the same line. This would make the release fail in those case. This fixes that by looking multiple times for the regular expression on a line. It also changes a bit the regular expression to target images better. Signed-off-by: Vincent Demeester --- tekton/koparse/koparse.py | 10 +++++++--- tekton/koparse/test_release.yaml | 18 ++++++++---------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/tekton/koparse/koparse.py b/tekton/koparse/koparse.py index dda4e3dac13..3a2f356f321 100755 --- a/tekton/koparse/koparse.py +++ b/tekton/koparse/koparse.py @@ -62,9 +62,13 @@ def parse_release(base: str, path: str) -> List[str]: images = [] with open(path) as f: for line in f: - match = re.search(base + ".*" + DIGEST_MARKER + ":[0-9a-f]*", line) - if match: - images.append(match.group(0)) + pattern = base + "[0-9a-z\-]+" + DIGEST_MARKER + ":[0-9a-f]*" + match = re.search(pattern, line) + while match is not None: + image = match.group(0) + images.append(image) + line = re.sub(image, "found", line) + match = re.search(pattern, line) return images diff --git a/tekton/koparse/test_release.yaml b/tekton/koparse/test_release.yaml index 66e32e87ba1..98a9b0e9fc0 100644 --- a/tekton/koparse/test_release.yaml +++ b/tekton/koparse/test_release.yaml @@ -326,16 +326,14 @@ spec: app: tekton-pipelines-controller spec: containers: - - args: - - -logtostderr - - -stderrthreshold - - INFO - - -kubeconfig-writer-image - - gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/kubeconfigwriter@sha256:68453f5bb4b76c0eab98964754114d4f79d3a50413872520d8919a6786ea2b35 - - -creds-image - - gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/creds-init@sha256:67448da79e4731ab534b91df08da547bc434ab08e41d905858f2244e70290f48 - - -git-image - - gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init@sha256:7d5520efa2d55e1346c424797988c541327ee52ef810a840b5c6f278a9de934a + - args: [ + "-logtostderr", + "-stderrthreshold", + "INFO", + "-kubeconfig-writer-image", "gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/kubeconfigwriter@sha256:68453f5bb4b76c0eab98964754114d4f79d3a50413872520d8919a6786ea2b35", "-creds-ige", "gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/creds-init@sha256:67448da79e4731ab534b91df08da547bc434ab08e41d905858f2244e70290f48", + "-git-image", + "gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init@sha256:7d5520efa2d55e1346c424797988c541327ee52ef810a840b5c6f278a9de934a", + ] image: gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/controller@sha256:bdc6f22a44944c829983c30213091b60f490b41f89577e8492f6a2936be0df41 name: tekton-pipelines-controller volumeMounts: