From 0bbbf41bc218e667a8924508c019808ad2a5de2c Mon Sep 17 00:00:00 2001 From: Vincent Demeester Date: Wed, 28 Sep 2022 16:36:06 +0200 Subject: [PATCH] =?UTF-8?q?tekton:=20make=20sure=20the=20git=20workingdir?= =?UTF-8?q?=20is=20not=20dirty=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit … when building the released binaries/images. As of today, we are modifying the source and building. This means `knative.dev/pkg/changeset` will require the commit hash suffixed by `-dirty`. This can be a bit confusing the users as, well, this means the source is not really the source of truth of the binary :) This changes that: - it generates `.ko.yaml` in `/workspace` so that it's not in the git repository. It uses `KO_CONFIG_PATH` environment variable to force `ko` to use it. - it does the devel->version rewrite on generated yamls, so after the build is done. Signed-off-by: Vincent Demeester --- tekton/publish.yaml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tekton/publish.yaml b/tekton/publish.yaml index ed91952595e..02a64323175 100644 --- a/tekton/publish.yaml +++ b/tekton/publish.yaml @@ -104,7 +104,7 @@ spec: ${CONTAINER_REGISTRY}/$(params.package)/combined-base-image:latest) # NOTE: Make sure this list of images to use the combined base image is in sync with what's in test/presubmit-tests.sh's 'ko_resolve' function. - cat < ${PROJECT_ROOT}/.ko.yaml + cat < /workspace/.ko.yaml # This matches the value configured in .ko.yaml defaultBaseImage: cgr.dev/chainguard/static baseImageOverrides: @@ -117,7 +117,7 @@ spec: $(params.package)/cmd/git-init: cgr.dev/chainguard/git EOF - cat ${PROJECT_ROOT}/.ko.yaml + cat /workspace/.ko.yaml - name: run-ko image: gcr.io/tekton-releases/dogfooding/ko@sha256:0e9f6349df349cbeb859b3c7899c78c024202fa95f174b910fb181361fdf737a @@ -130,6 +130,9 @@ spec: #!/usr/bin/env sh set -ex + # Use the generated `.ko.yaml` + KO_CONFIG_PATH=/workspace/.ko.yaml + # Setup docker-auth DOCKER_CONFIG=~/.docker mkdir -p ${DOCKER_CONFIG} @@ -153,10 +156,6 @@ spec: fi done - # Rewrite "devel" to params.versionTag - sed -i -e 's/\(pipeline.tekton.dev\/release\): "devel"/\1: "$(params.versionTag)"/g' -e 's/\(app.kubernetes.io\/version\): "devel"/\1: "$(params.versionTag)"/g' -e 's/\(version\): "devel"/\1: "$(params.versionTag)"/g' ${PROJECT_ROOT}/config/*.yaml - sed -i -e 's/\(pipeline.tekton.dev\/release\): "devel"/\1: "$(params.versionTag)"/g' -e 's/\(app.kubernetes.io\/version\): "devel"/\1: "$(params.versionTag)"/g' -e 's/\(version\): "devel"/\1: "$(params.versionTag)"/g' ${PROJECT_ROOT}/config/resolvers/*.yaml - # Publish images and create release.yaml mkdir -p $OUTPUT_RELEASE_DIR @@ -168,6 +167,11 @@ spec: ko resolve --platform=$(params.platforms) --preserve-import-paths -l 'app.kubernetes.io/component!=resolvers' -R -f ${PROJECT_ROOT}/config/ > $OUTPUT_RELEASE_DIR/release.notags.yaml ko resolve --platform=$(params.platforms) --preserve-import-paths -f ${PROJECT_ROOT}/config/resolvers > $OUTPUT_RELEASE_DIR/resolvers.notags.yaml + # Rewrite "devel" to params.versionTag + sed -i -e 's/\(pipeline.tekton.dev\/release\): "devel"/\1: "$(params.versionTag)"/g' -e 's/\(app.kubernetes.io\/version\): "devel"/\1: "$(params.versionTag)"/g' -e 's/\(version\): "devel"/\1: "$(params.versionTag)"/g' ${OUTPUT_RELEASE_DIR}/release.yaml + sed -i -e 's/\(pipeline.tekton.dev\/release\): "devel"/\1: "$(params.versionTag)"/g' -e 's/\(app.kubernetes.io\/version\): "devel"/\1: "$(params.versionTag)"/g' -e 's/\(version\): "devel"/\1: "$(params.versionTag)"/g' ${OUTPUT_RELEASE_DIR}/release.notags.yaml + sed -i -e 's/\(pipeline.tekton.dev\/release\): "devel"/\1: "$(params.versionTag)"/g' -e 's/\(app.kubernetes.io\/version\): "devel"/\1: "$(params.versionTag)"/g' -e 's/\(version\): "devel"/\1: "$(params.versionTag)"/g' ${OUTPUT_RELEASE_DIR}/resolvers.yaml + sed -i -e 's/\(pipeline.tekton.dev\/release\): "devel"/\1: "$(params.versionTag)"/g' -e 's/\(app.kubernetes.io\/version\): "devel"/\1: "$(params.versionTag)"/g' -e 's/\(version\): "devel"/\1: "$(params.versionTag)"/g' ${OUTPUT_RELEASE_DIR}/resolvers.notags.yaml - name: koparse image: gcr.io/tekton-releases/dogfooding/koparse:latest script: |