474 lines
16 KiB
YAML
474 lines
16 KiB
YAML
apiVersion: tekton.dev/v1
|
|
kind: PipelineRun
|
|
metadata:
|
|
annotations:
|
|
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
pipelinesascode.tekton.dev/on-cel-expression: event == "push" && target_branch
|
|
== "main"
|
|
creationTimestamp: null
|
|
labels:
|
|
appstudio.openshift.io/application: fedora-bootc-tier-x-rawhide
|
|
appstudio.openshift.io/component: fedora-bootc-tier-x-rawhide
|
|
pipelines.appstudio.openshift.io/type: build
|
|
name: fedora-bootc-tier-x-rawhide-on-push
|
|
namespace: bootc-tenant
|
|
spec:
|
|
params:
|
|
- name: git-url
|
|
value: '{{source_url}}'
|
|
- name: revision
|
|
value: '{{revision}}'
|
|
- name: output-image
|
|
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-tier-x-rawhide/fedora-bootc-tier-x-rawhide:{{revision}}
|
|
- name: dockerfile
|
|
value: Containerfile
|
|
- name: path-context
|
|
value: .
|
|
pipelineSpec:
|
|
description: |
|
|
This pipeline is ideal for building container images from a Containerfile while maintaining trust after pipeline customization.
|
|
|
|
_Uses `buildah` to create a container image leveraging [trusted artifacts](https://konflux-ci.dev/architecture/ADR/0036-trusted-artifacts.html). It also optionally creates a source image and runs some build-time tests. Information is shared between tasks using OCI artifacts instead of PVCs. EC will pass the [`trusted_task.trusted`](https://enterprisecontract.dev/docs/ec-policies/release_policy.html#trusted_task__trusted) policy as long as all data used to build the artifact is generated from trusted tasks.
|
|
This pipeline is pushed as a Tekton bundle to [quay.io](https://quay.io/repository/konflux-ci/tekton-catalog/pipeline-docker-build-oci-ta?tab=tags)_
|
|
finally:
|
|
- name: show-sbom
|
|
params:
|
|
- name: IMAGE_URL
|
|
value: $(tasks.build-image-index.results.IMAGE_URL)
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: show-sbom
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-show-sbom:0.1@sha256:945a7c9066d3e0a95d3fddb7e8a6992e4d632a2a75d8f3a9bd2ff2fef0ec9aa0
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
params:
|
|
- description: Source Repository URL
|
|
name: git-url
|
|
type: string
|
|
- default: ""
|
|
description: Revision of the Source Repository
|
|
name: revision
|
|
type: string
|
|
- description: Fully Qualified Output Image
|
|
name: output-image
|
|
type: string
|
|
- default: .
|
|
description: Path to the source code of an application's component from where
|
|
to build image.
|
|
name: path-context
|
|
type: string
|
|
- default: Dockerfile
|
|
description: Path to the Dockerfile inside the context specified by parameter
|
|
path-context
|
|
name: dockerfile
|
|
type: string
|
|
- default: "false"
|
|
description: Force rebuild image
|
|
name: rebuild
|
|
type: string
|
|
- default: "false"
|
|
description: Skip checks against built image
|
|
name: skip-checks
|
|
type: string
|
|
- default: "false"
|
|
description: Execute the build with network isolation
|
|
name: hermetic
|
|
type: string
|
|
- default: ""
|
|
description: Build dependencies to be prefetched by Cachi2
|
|
name: prefetch-input
|
|
type: string
|
|
- default: ""
|
|
description: Image tag expiration time, time values could be something like
|
|
1h, 2d, 3w for hours, days, and weeks, respectively.
|
|
name: image-expires-after
|
|
- default: "false"
|
|
description: Build a source image.
|
|
name: build-source-image
|
|
type: string
|
|
- default: "false"
|
|
description: Add built image into an OCI image index
|
|
name: build-image-index
|
|
type: string
|
|
- default: []
|
|
description: Array of --build-arg values ("arg=value" strings) for buildah
|
|
name: build-args
|
|
type: array
|
|
- default: ""
|
|
description: Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file
|
|
name: build-args-file
|
|
type: string
|
|
results:
|
|
- description: ""
|
|
name: IMAGE_URL
|
|
value: $(tasks.build-image-index.results.IMAGE_URL)
|
|
- description: ""
|
|
name: IMAGE_DIGEST
|
|
value: $(tasks.build-image-index.results.IMAGE_DIGEST)
|
|
- description: ""
|
|
name: CHAINS-GIT_URL
|
|
value: $(tasks.clone-repository.results.url)
|
|
- description: ""
|
|
name: CHAINS-GIT_COMMIT
|
|
value: $(tasks.clone-repository.results.commit)
|
|
tasks:
|
|
- name: init
|
|
params:
|
|
- name: image-url
|
|
value: $(params.output-image)
|
|
- name: rebuild
|
|
value: $(params.rebuild)
|
|
- name: skip-checks
|
|
value: $(params.skip-checks)
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: init
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-init:0.2@sha256:0523b51c28375a3f222da91690e22eff11888ebc98a0c73c468af44762265c69
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
- name: clone-repository
|
|
params:
|
|
- name: url
|
|
value: $(params.git-url)
|
|
- name: revision
|
|
value: $(params.revision)
|
|
- name: ociStorage
|
|
value: $(params.output-image).git
|
|
- name: ociArtifactExpiresAfter
|
|
value: $(params.image-expires-after)
|
|
runAfter:
|
|
- init
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: git-clone-oci-ta
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-git-clone-oci-ta:0.1@sha256:4bf48d038ff12d25bdeb5ab3e98dc2271818056f454c83d7393ebbd413028147
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
when:
|
|
- input: $(tasks.init.results.build)
|
|
operator: in
|
|
values:
|
|
- "true"
|
|
workspaces:
|
|
- name: basic-auth
|
|
workspace: git-auth
|
|
- name: prefetch-dependencies
|
|
params:
|
|
- name: input
|
|
value: $(params.prefetch-input)
|
|
- name: SOURCE_ARTIFACT
|
|
value: $(tasks.clone-repository.results.SOURCE_ARTIFACT)
|
|
- name: ociStorage
|
|
value: $(params.output-image).prefetch
|
|
- name: ociArtifactExpiresAfter
|
|
value: $(params.image-expires-after)
|
|
runAfter:
|
|
- clone-repository
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: prefetch-dependencies-oci-ta
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies-oci-ta:0.1@sha256:b1ac9124ad909a8d7dbac01b1a02ef9a973d448d4c94efcf3d1b29e2a5c9e76f
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
workspaces:
|
|
- name: git-basic-auth
|
|
workspace: git-auth
|
|
- name: netrc
|
|
workspace: netrc
|
|
- name: build-container
|
|
params:
|
|
- name: IMAGE
|
|
value: $(params.output-image)
|
|
- 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: BUILD_ARGS
|
|
value:
|
|
- $(params.build-args[*])
|
|
- name: BUILD_ARGS_FILE
|
|
value: $(params.build-args-file)
|
|
- name: SOURCE_ARTIFACT
|
|
value: $(tasks.prefetch-dependencies.results.SOURCE_ARTIFACT)
|
|
- name: CACHI2_ARTIFACT
|
|
value: $(tasks.prefetch-dependencies.results.CACHI2_ARTIFACT)
|
|
runAfter:
|
|
- prefetch-dependencies
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: buildah-oci-ta
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-buildah-oci-ta:0.2@sha256:0951ae38b5651358c6eb690171846226411057cff67931a76466946e16841173
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
when:
|
|
- input: $(tasks.init.results.build)
|
|
operator: in
|
|
values:
|
|
- "true"
|
|
- name: build-image-index
|
|
params:
|
|
- name: IMAGE
|
|
value: $(params.output-image)
|
|
- name: COMMIT_SHA
|
|
value: $(tasks.clone-repository.results.commit)
|
|
- name: IMAGE_EXPIRES_AFTER
|
|
value: $(params.image-expires-after)
|
|
- name: ALWAYS_BUILD_INDEX
|
|
value: $(params.build-image-index)
|
|
- name: IMAGES
|
|
value:
|
|
- $(tasks.build-container.results.IMAGE_URL)@$(tasks.build-container.results.IMAGE_DIGEST)
|
|
runAfter:
|
|
- build-container
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: build-image-index
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-build-image-index:0.1@sha256:7b2c5ab5d711d1d487693072dec6a10ede0076290dabc673bc6ccde9a322674a
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
when:
|
|
- input: $(tasks.init.results.build)
|
|
operator: in
|
|
values:
|
|
- "true"
|
|
- name: build-source-image
|
|
params:
|
|
- name: BINARY_IMAGE
|
|
value: $(params.output-image)
|
|
- name: SOURCE_ARTIFACT
|
|
value: $(tasks.prefetch-dependencies.results.SOURCE_ARTIFACT)
|
|
- name: CACHI2_ARTIFACT
|
|
value: $(tasks.prefetch-dependencies.results.CACHI2_ARTIFACT)
|
|
runAfter:
|
|
- build-image-index
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: source-build-oci-ta
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-source-build-oci-ta:0.1@sha256:64eef14c48810812ce1e91a360fccd8bf16a2b2606fe7d13f20b4c6c85d0fdc6
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
when:
|
|
- input: $(tasks.init.results.build)
|
|
operator: in
|
|
values:
|
|
- "true"
|
|
- input: $(params.build-source-image)
|
|
operator: in
|
|
values:
|
|
- "true"
|
|
- name: deprecated-base-image-check
|
|
params:
|
|
- name: IMAGE_URL
|
|
value: $(tasks.build-image-index.results.IMAGE_URL)
|
|
- name: IMAGE_DIGEST
|
|
value: $(tasks.build-image-index.results.IMAGE_DIGEST)
|
|
runAfter:
|
|
- build-image-index
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: deprecated-image-check
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check:0.4@sha256:5a1a165fa02270f0a947d8a2131ee9d8be0b8e9d34123828c2bef589e504ee84
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
when:
|
|
- input: $(params.skip-checks)
|
|
operator: in
|
|
values:
|
|
- "false"
|
|
- name: clair-scan
|
|
params:
|
|
- name: image-digest
|
|
value: $(tasks.build-image-index.results.IMAGE_DIGEST)
|
|
- name: image-url
|
|
value: $(tasks.build-image-index.results.IMAGE_URL)
|
|
runAfter:
|
|
- build-image-index
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: clair-scan
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-clair-scan:0.2@sha256:0a5421111e7092740398691d5bd7c125cc0896f29531d19414bb5724ae41692a
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
when:
|
|
- input: $(params.skip-checks)
|
|
operator: in
|
|
values:
|
|
- "false"
|
|
- name: ecosystem-cert-preflight-checks
|
|
params:
|
|
- name: image-url
|
|
value: $(tasks.build-image-index.results.IMAGE_URL)
|
|
runAfter:
|
|
- build-image-index
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: ecosystem-cert-preflight-checks
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-ecosystem-cert-preflight-checks:0.1@sha256:df8a25a3431a70544172ed4844f9d0c6229d39130633960729f825a031a7dea9
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
when:
|
|
- input: $(params.skip-checks)
|
|
operator: in
|
|
values:
|
|
- "false"
|
|
- name: sast-snyk-check
|
|
params:
|
|
- name: image-digest
|
|
value: $(tasks.build-image-index.results.IMAGE_DIGEST)
|
|
- name: image-url
|
|
value: $(tasks.build-image-index.results.IMAGE_URL)
|
|
- name: SOURCE_ARTIFACT
|
|
value: $(tasks.prefetch-dependencies.results.SOURCE_ARTIFACT)
|
|
- name: CACHI2_ARTIFACT
|
|
value: $(tasks.prefetch-dependencies.results.CACHI2_ARTIFACT)
|
|
runAfter:
|
|
- build-image-index
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: sast-snyk-check-oci-ta
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check-oci-ta:0.2@sha256:22ca2db8d94c689dba03d2c257733743cd118759d7af9a68fb08f54a27fd8460
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
when:
|
|
- input: $(params.skip-checks)
|
|
operator: in
|
|
values:
|
|
- "false"
|
|
- name: clamav-scan
|
|
params:
|
|
- name: image-digest
|
|
value: $(tasks.build-image-index.results.IMAGE_DIGEST)
|
|
- name: image-url
|
|
value: $(tasks.build-image-index.results.IMAGE_URL)
|
|
runAfter:
|
|
- build-image-index
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: clamav-scan
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.1@sha256:b4f450f1447b166da671f1d5819ab5a1485083e5c27ab91f7d8b7a2ff994c8c2
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
when:
|
|
- input: $(params.skip-checks)
|
|
operator: in
|
|
values:
|
|
- "false"
|
|
- name: apply-tags
|
|
params:
|
|
- name: IMAGE
|
|
value: $(tasks.build-image-index.results.IMAGE_URL)
|
|
runAfter:
|
|
- build-image-index
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: apply-tags
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-apply-tags:0.1@sha256:87fd7fc0e937aad1a8db9b6e377d7e444f53394dafde512d68adbea6966a4702
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
- name: push-dockerfile
|
|
params:
|
|
- name: IMAGE
|
|
value: $(tasks.build-image-index.results.IMAGE_URL)
|
|
- name: IMAGE_DIGEST
|
|
value: $(tasks.build-image-index.results.IMAGE_DIGEST)
|
|
- name: DOCKERFILE
|
|
value: $(params.dockerfile)
|
|
- name: CONTEXT
|
|
value: $(params.path-context)
|
|
- name: SOURCE_ARTIFACT
|
|
value: $(tasks.prefetch-dependencies.results.SOURCE_ARTIFACT)
|
|
runAfter:
|
|
- build-image-index
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: push-dockerfile-oci-ta
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-push-dockerfile-oci-ta:0.1@sha256:80d48a1b9d2707490309941ec9f79338533938f959ca9a207b481b0e8a5e7a93
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
- name: rpms-signature-scan
|
|
params:
|
|
- name: image-url
|
|
value: $(tasks.build-image-index.results.IMAGE_URL)
|
|
- name: image-digest
|
|
value: $(tasks.build-image-index.results.IMAGE_DIGEST)
|
|
runAfter:
|
|
- build-image-index
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: rpms-signature-scan
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-rpms-signature-scan:0.2@sha256:28aaf87d61078a0aeeeabcae455eda7d05c4f9b81d8995bdcf3dde95c1a7a77b
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
when:
|
|
- input: $(params.skip-checks)
|
|
operator: in
|
|
values:
|
|
- "false"
|
|
workspaces:
|
|
- name: git-auth
|
|
optional: true
|
|
- name: netrc
|
|
optional: true
|
|
taskRunTemplate: {}
|
|
workspaces:
|
|
- name: git-auth
|
|
secret:
|
|
secretName: '{{ git_auth_secret }}'
|
|
status: {}
|