From c0d3785e2d6e9bee10dccf8bec2667da6a67bca6 Mon Sep 17 00:00:00 2001 From: Stuart Douglas Date: Wed, 27 Sep 2023 13:44:04 +1000 Subject: [PATCH] Multi platform PR pipeline --- .tekton/multi-platform-test-pull-request.yaml | 276 +++++++++++++++++- 1 file changed, 268 insertions(+), 8 deletions(-) diff --git a/.tekton/multi-platform-test-pull-request.yaml b/.tekton/multi-platform-test-pull-request.yaml index 6573fcb..27281f0 100644 --- a/.tekton/multi-platform-test-pull-request.yaml +++ b/.tekton/multi-platform-test-pull-request.yaml @@ -35,7 +35,7 @@ spec: - name: show-sbom params: - name: IMAGE_URL - value: $(tasks.build-container.results.IMAGE_URL) + value: $(tasks.build-container-amd64.results.IMAGE_URL) taskRef: params: - name: name @@ -128,7 +128,7 @@ spec: value: $(tasks.clone-repository.results.commit) - description: "" name: JAVA_COMMUNITY_DEPENDENCIES - value: $(tasks.build-container.results.JAVA_COMMUNITY_DEPENDENCIES) + value: $(tasks.build-container-amd64.results.JAVA_COMMUNITY_DEPENDENCIES) tasks: - name: init params: @@ -180,6 +180,90 @@ spec: workspace: workspace - name: basic-auth workspace: git-auth + - name: clone-repository-arm64 + params: + - name: url + value: $(params.git-url) + - name: revision + value: $(params.revision) + runAfter: + - init + taskRef: + kind: Task + params: + - name: name + value: git-clone + - name: bundle + value: quay.io/redhat-appstudio-tekton-catalog/task-git-clone:0.1@sha256:1f84973a21aabea38434b1f663abc4cb2d86565a9c7aae1f90decb43a8fa48eb + - name: kind + value: task + resolver: bundles + when: + - input: $(tasks.init.results.build) + operator: in + values: + - "true" + workspaces: + - name: output + workspace: workspace-arm64 + - name: basic-auth + workspace: git-auth + - name: clone-repository-s390x + params: + - name: url + value: $(params.git-url) + - name: revision + value: $(params.revision) + runAfter: + - init + taskRef: + kind: Task + params: + - name: name + value: git-clone + - name: bundle + value: quay.io/redhat-appstudio-tekton-catalog/task-git-clone:0.1@sha256:1f84973a21aabea38434b1f663abc4cb2d86565a9c7aae1f90decb43a8fa48eb + - name: kind + value: task + resolver: bundles + when: + - input: $(tasks.init.results.build) + operator: in + values: + - "true" + workspaces: + - name: output + workspace: workspace-s390x + - name: basic-auth + workspace: git-auth + - name: clone-repository-ppc64le + params: + - name: url + value: $(params.git-url) + - name: revision + value: $(params.revision) + runAfter: + - init + taskRef: + kind: Task + params: + - name: name + value: git-clone + - name: bundle + value: quay.io/redhat-appstudio-tekton-catalog/task-git-clone:0.1@sha256:1f84973a21aabea38434b1f663abc4cb2d86565a9c7aae1f90decb43a8fa48eb + - name: kind + value: task + resolver: bundles + when: + - input: $(tasks.init.results.build) + operator: in + values: + - "true" + workspaces: + - name: output + workspace: workspace-ppc64le + - name: basic-auth + workspace: git-auth - name: prefetch-dependencies params: - name: input @@ -203,10 +287,10 @@ spec: workspaces: - name: source workspace: workspace - - name: build-container + - name: build-container-amd64 params: - name: IMAGE - value: $(params.output-image) + value: $(params.output-image)-amd64 - name: DOCKERFILE value: $(params.dockerfile) - name: CONTEXT @@ -220,7 +304,7 @@ spec: - name: COMMIT_SHA value: $(tasks.clone-repository.results.commit) runAfter: - - prefetch-dependencies + - prefetch-dependencies taskRef: params: - name: name @@ -234,10 +318,153 @@ spec: - input: $(tasks.init.results.build) operator: in values: - - "true" + - "true" + workspaces: + - name: source + workspace: workspace + - name: build-container-arm64 + params: + - name: IMAGE + value: $(params.output-image)-arm64 + - name: DOCKERFILE + value: $(params.dockerfile) + - name: CONTEXT + value: $(params.path-context) + - name: HERMETIC + value: $(params.hermetic) + - name: PREFETCH_INPUT + value: $(params.prefetch-input) + - name: IMAGE_EXPIRES_AFTER + value: $(params.image-expires-after) + - name: COMMIT_SHA + value: $(tasks.clone-repository.results.commit) + - name: PLATFORM + value: linux/arm64 + runAfter: + - clone-repository-arm64 + taskRef: + resolver: git + params: + - name: url + value: https://github.com/stuartwdouglas/build-definitions.git + - name: revision + value: multiarch + - name: pathInRepo + value: task/buildah-remote/0.1/buildah-remote.yaml + when: + - input: $(tasks.init.results.build) + operator: in + values: + - "true" workspaces: - name: source - workspace: workspace + workspace: workspace-arm64 + - name: build-container-s390x + params: + - name: IMAGE + value: $(params.output-image)-s390x + - name: DOCKERFILE + value: $(params.dockerfile) + - name: CONTEXT + value: $(params.path-context) + - name: HERMETIC + value: $(params.hermetic) + - name: PREFETCH_INPUT + value: $(params.prefetch-input) + - name: IMAGE_EXPIRES_AFTER + value: $(params.image-expires-after) + - name: COMMIT_SHA + value: $(tasks.clone-repository.results.commit) + - name: PLATFORM + value: linux/s390x + runAfter: + - clone-repository-s390x + taskRef: + resolver: git + params: + - name: url + value: https://github.com/stuartwdouglas/build-definitions.git + - name: revision + value: multiarch + - name: pathInRepo + value: task/buildah-remote/0.1/buildah-remote.yaml + when: + - input: $(tasks.init.results.build) + operator: in + values: + - "true" + workspaces: + - name: source + workspace: workspace-s390x + + - name: build-container-ppc64le + params: + - name: IMAGE + value: $(params.output-image)-ppc64le + - name: DOCKERFILE + value: $(params.dockerfile) + - name: CONTEXT + value: $(params.path-context) + - name: HERMETIC + value: $(params.hermetic) + - name: PREFETCH_INPUT + value: $(params.prefetch-input) + - name: IMAGE_EXPIRES_AFTER + value: $(params.image-expires-after) + - name: COMMIT_SHA + value: $(tasks.clone-repository.results.commit) + - name: PLATFORM + value: linux/ppc64le + runAfter: + - clone-repository-ppc64le + taskRef: + resolver: git + params: + - name: url + value: https://github.com/stuartwdouglas/build-definitions.git + - name: revision + value: multiarch + - name: pathInRepo + value: task/buildah-remote/0.1/buildah-remote.yaml + when: + - input: $(tasks.init.results.build) + operator: in + values: + - "true" + workspaces: + - name: source + workspace: workspace-ppc64le + - name: build-container + params: + - name: IMAGE + value: $(params.output-image) + - name: COMMIT_SHA + value: $(tasks.clone-repository.results.commit) + - name: IMAGES + value: + - $(tasks.build-container-amd64.results.IMAGE_URL)@$(tasks.build-container-amd64.results.IMAGE_DIGEST) + - $(tasks.build-container-arm64.results.IMAGE_URL)@$(tasks.build-container-arm64.results.IMAGE_DIGEST) + - $(tasks.build-container-s390x.results.IMAGE_URL)@$(tasks.build-container-s390x.results.IMAGE_DIGEST) + - $(tasks.build-container-ppc64le.results.IMAGE_URL)@$(tasks.build-container-ppc64le.results.IMAGE_DIGEST) + runAfter: + - build-container-amd64 + - build-container-arm64 + - build-container-s390x + - build-container-ppc64le + taskRef: + resolver: git + params: + - name: url + value: https://github.com/stuartwdouglas/build-definitions.git + - name: revision + value: multiarch + - name: pathInRepo + value: task/build-image-manifest/0.1/build-image-manifest.yaml + when: + - input: $(tasks.init.results.build) + operator: in + values: + - "true" - name: inspect-image params: - name: IMAGE_URL @@ -266,7 +493,7 @@ spec: - name: deprecated-base-image-check params: - name: BASE_IMAGES_DIGESTS - value: $(tasks.build-container.results.BASE_IMAGES_DIGESTS) + value: $(tasks.build-container-amd64.results.BASE_IMAGES_DIGESTS) taskRef: params: - name: name @@ -383,6 +610,39 @@ spec: requests: storage: 1Gi status: {} + - name: workspace-arm64 + volumeClaimTemplate: + metadata: + creationTimestamp: null + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + status: {} + - name: workspace-s390x + volumeClaimTemplate: + metadata: + creationTimestamp: null + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + status: {} + - name: workspace-ppc64le + volumeClaimTemplate: + metadata: + creationTimestamp: null + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + status: {} - name: git-auth secret: secretName: '{{ git_auth_secret }}'