634 lines
20 KiB
YAML
634 lines
20 KiB
YAML
apiVersion: tekton.dev/v1
|
|
kind: PipelineRun
|
|
metadata:
|
|
annotations:
|
|
build.appstudio.openshift.io/repo: https://github.com/osbuild/image-builder-frontend?rev={{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: insights-image-builder
|
|
appstudio.openshift.io/component: image-builder-frontend
|
|
pipelines.appstudio.openshift.io/type: build
|
|
name: image-builder-frontend-on-push
|
|
namespace: insights-management-tenant
|
|
spec:
|
|
params:
|
|
- name: git-url
|
|
value: '{{source_url}}'
|
|
- name: revision
|
|
value: '{{revision}}'
|
|
- name: output-image
|
|
value: quay.io/redhat-user-workloads/insights-management-tenant/insights-image-builder/image-builder-frontend:{{revision}}
|
|
- name: dockerfile
|
|
value: Dockerfile
|
|
- name: path-context
|
|
value: .
|
|
pipelineSpec:
|
|
description: |
|
|
This pipeline is ideal for building container images from a Containerfile while reducing network traffic.
|
|
|
|
_Uses `buildah` to create a container image. It also optionally creates a source image and runs some build-time tests. EC will flag a violation for [`trusted_task.trusted`](https://enterprisecontract.dev/docs/ec-policies/release_policy.html#trusted_task__trusted) if any tasks are added to the pipeline.
|
|
This pipeline is pushed as a Tekton bundle to [quay.io](https://quay.io/repository/konflux-ci/tekton-catalog/pipeline-docker-build?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
|
|
- name: show-summary
|
|
params:
|
|
- name: pipelinerun-name
|
|
value: $(context.pipelineRun.name)
|
|
- name: git-url
|
|
value: $(tasks.clone-repository.results.url)?rev=$(tasks.clone-repository.results.commit)
|
|
- name: image-url
|
|
value: $(params.output-image)
|
|
- name: build-task-status
|
|
value: $(tasks.build-image-index.status)
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: summary
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-summary:0.2@sha256:870d9a04d9784840a90b7bf6817cd0d0c4edfcda04b1ba1868cae625a3c3bfcc
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
workspaces:
|
|
- name: workspace
|
|
workspace: workspace
|
|
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:63eb4a4c0cfb491276bff86fdad1c96bf238506388848e79001058450a8e843a
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
- name: clone-repository
|
|
params:
|
|
- name: url
|
|
value: $(params.git-url)
|
|
- name: revision
|
|
value: $(params.revision)
|
|
runAfter:
|
|
- init
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: git-clone
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-git-clone:0.1@sha256:fe27845cdba6fa95d9da2bfc7cb744d4df88711e8b867c4f246bdf944d4b00d0
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
when:
|
|
- input: $(tasks.init.results.build)
|
|
operator: in
|
|
values:
|
|
- "true"
|
|
workspaces:
|
|
- name: output
|
|
workspace: workspace
|
|
- name: basic-auth
|
|
workspace: git-auth
|
|
- name: prefetch-dependencies
|
|
params:
|
|
- name: input
|
|
value: $(params.prefetch-input)
|
|
runAfter:
|
|
- clone-repository
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: prefetch-dependencies
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies:0.2@sha256:fb126d78a71fa4cef9046d2563832c91ec73e0d1a7c5811b85e9d28132b7c076
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
when:
|
|
- input: $(params.prefetch-input)
|
|
operator: notin
|
|
values:
|
|
- ""
|
|
workspaces:
|
|
- name: source
|
|
workspace: workspace
|
|
- name: git-basic-auth
|
|
workspace: git-auth
|
|
- name: netrc
|
|
workspace: netrc
|
|
- name: parse-build-deploy-script
|
|
params:
|
|
- name: path-context
|
|
value: $(params.path-context)
|
|
taskRef:
|
|
resolver: git
|
|
params:
|
|
- name: url
|
|
value: https://github.com/RedHatInsights/konflux-consoledot-frontend-build
|
|
- name: revision
|
|
value: 2fcdfa9b4858ac941b50ad37317c4f9aaabf91b4
|
|
- name: pathInRepo
|
|
value: tasks/parse-build-deploy-script/parse-build-deploy-script.yaml
|
|
workspaces:
|
|
- name: source
|
|
workspace: workspace
|
|
runAfter:
|
|
- clone-repository
|
|
- name: create-frontend-dockerfile
|
|
taskRef:
|
|
resolver: git
|
|
params:
|
|
- name: url
|
|
value: https://github.com/RedHatInsights/konflux-consoledot-frontend-build
|
|
- name: revision
|
|
value: 2fcdfa9b4858ac941b50ad37317c4f9aaabf91b4
|
|
- name: pathInRepo
|
|
value: tasks/create-frontend-dockerfile/create-frontend-dockerfile.yaml
|
|
workspaces:
|
|
- name: source
|
|
workspace: workspace
|
|
params:
|
|
- name: path-context
|
|
value: $(params.path-context)
|
|
- name: component
|
|
value: $(tasks.parse-build-deploy-script.results.component)
|
|
- name: image
|
|
value: $(tasks.parse-build-deploy-script.results.image)
|
|
- name: node-build-version
|
|
value: $(tasks.parse-build-deploy-script.results.node-build-version)
|
|
- name: quay-expire-time
|
|
value: $(tasks.parse-build-deploy-script.results.quay-expire-time)
|
|
- name: npm-build-script
|
|
value: $(tasks.parse-build-deploy-script.results.npm-build-script)
|
|
- name: yarn-build-script
|
|
value: $(tasks.parse-build-deploy-script.results.yarn-build-script)
|
|
- name: route-path
|
|
value: $(tasks.parse-build-deploy-script.results.route-path)
|
|
- name: beta-route-path
|
|
value: $(tasks.parse-build-deploy-script.results.beta-route-path)
|
|
- name: preview-route-path
|
|
value: $(tasks.parse-build-deploy-script.results.preview-route-path)
|
|
- name: ci-root
|
|
value: $(tasks.parse-build-deploy-script.results.ci-root)
|
|
- name: server-name
|
|
value: $(tasks.parse-build-deploy-script.results.server-name)
|
|
- name: dist-folder
|
|
value: $(tasks.parse-build-deploy-script.results.dist-folder)
|
|
runAfter:
|
|
- parse-build-deploy-script
|
|
- name: clone-repository-oci-ta
|
|
params:
|
|
- name: url
|
|
value: $(params.git-url)
|
|
- name: revision
|
|
value: $(params.revision)
|
|
- name: ociStorage
|
|
value: $(params.output-image).git
|
|
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@sha256:0f4360ce144d46171ebd2e8f4d4575539a0600e02208ba5fc9beeb2c27ddfd4c
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
when:
|
|
- input: $(tasks.init.results.build)
|
|
operator: in
|
|
values:
|
|
- "true"
|
|
workspaces:
|
|
- name: basic-auth
|
|
workspace: git-auth
|
|
# - name: run-unit-tests
|
|
# description: Validates frontend unit tests
|
|
# params:
|
|
# - name: SOURCE_ARTIFACT
|
|
# value: $(tasks.clone-repository-oci-ta.results.SOURCE_ARTIFACT)
|
|
# runAfter:
|
|
# - clone-repository-oci-ta
|
|
# workspaces:
|
|
# - name: basic-auth
|
|
# workspace: git-auth
|
|
# taskSpec:
|
|
# params:
|
|
# - description: The Trusted Artifact URI pointing to the artifact with the application source code.
|
|
# name: SOURCE_ARTIFACT
|
|
# type: string
|
|
# volumes:
|
|
# # New volume to store a copy of the source code accessible only to this Task.
|
|
# - name: workdir
|
|
# emptyDir: {}
|
|
# stepTemplate:
|
|
# volumeMounts:
|
|
# - mountPath: /var/workdir
|
|
# name: workdir
|
|
# readOnly: false
|
|
# sidecars:
|
|
# steps:
|
|
# - name: use-trusted-artifact
|
|
# image: quay.io/redhat-appstudio/build-trusted-artifacts:latest@sha256:8391272c4e5011120e9e7fee2c1f339e9405366110bf239dadcbc21e953ce099
|
|
# args:
|
|
# - use
|
|
# - $(params.SOURCE_ARTIFACT)=/var/workdir
|
|
# - image: registry.access.redhat.com/ubi8/nodejs-20
|
|
# workingDir: /var/workdir
|
|
# name: unit-tests
|
|
# securityContext:
|
|
# runAsUser: 0
|
|
# script: |
|
|
# #!/bin/bash
|
|
# set -ex
|
|
|
|
# npm install
|
|
# npm test
|
|
- 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)
|
|
runAfter:
|
|
- prefetch-dependencies
|
|
- create-frontend-dockerfile
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: buildah
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.4@sha256:91caef22ccb5bbc694e33eb8706cddb662840e9dc351c7e57a23f7dc50dae2e5
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
when:
|
|
- input: $(tasks.init.results.build)
|
|
operator: in
|
|
values:
|
|
- "true"
|
|
workspaces:
|
|
- name: source
|
|
workspace: workspace
|
|
- 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:0c2270d1b24fcbaa6fe82b6d045b715a5f24f55d099a10f65297671e2ee421e6
|
|
- 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)
|
|
runAfter:
|
|
- build-image-index
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: source-build
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-source-build:0.2@sha256:6de42f19b1bc021657f0e94fce9995cdd841c9378a732948ae2a347422e0f613
|
|
- 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"
|
|
workspaces:
|
|
- name: workspace
|
|
workspace: workspace
|
|
- 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.5@sha256:ced089bd8d86f95ee70f6ee1a6941d677f1c66c3b8f02fa60f9309c6c32e1929
|
|
- 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:f636f2cbe91d9d4d9685a38c8bc680a36e17f568ec0e60a93da82d1284b488c5
|
|
- 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.2@sha256:2ad615f9b8141ed2e0b060ebda366ce43cf55a9dd7c98e2d93970ff328dca8b2
|
|
- 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)
|
|
runAfter:
|
|
- build-image-index
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: sast-snyk-check
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check:0.3@sha256:30cc34ccf6ca34e7f0951fd508fe4436d07388e7244baab77baf4ef9bdcefff4
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
when:
|
|
- input: $(params.skip-checks)
|
|
operator: in
|
|
values:
|
|
- "false"
|
|
workspaces:
|
|
- name: workspace
|
|
workspace: workspace
|
|
- 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.2@sha256:0db068e8a59612472a2483f5113893d0c5c9102e9ad7647d9a4789360e5bc2dc
|
|
- 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:5e5f290359fd34ae4cc77cbbba6ef8c9907d752572d6dc2a00f5a4c504eb48bb
|
|
- 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)
|
|
runAfter:
|
|
- build-image-index
|
|
taskRef:
|
|
params:
|
|
- name: name
|
|
value: push-dockerfile
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-push-dockerfile:0.1@sha256:86ba936a94bfad7a295fbceaa6531e33b9fc1f8fc2d5c44d93fc4e3af760bd1e
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
workspaces:
|
|
- name: workspace
|
|
workspace: workspace
|
|
- name: rpms-signature-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: rpms-signature-scan
|
|
- name: bundle
|
|
value: quay.io/konflux-ci/tekton-catalog/task-rpms-signature-scan:0.2@sha256:e603b3df510aeefeaa12e8778c4642b21743cb0ae68704359dc7ffd2814249d2
|
|
- name: kind
|
|
value: task
|
|
resolver: bundles
|
|
when:
|
|
- input: $(params.skip-checks)
|
|
operator: in
|
|
values:
|
|
- "false"
|
|
workspaces:
|
|
- name: workspace
|
|
- name: git-auth
|
|
optional: true
|
|
- name: netrc
|
|
optional: true
|
|
taskRunTemplate: {}
|
|
workspaces:
|
|
- name: workspace
|
|
volumeClaimTemplate:
|
|
metadata:
|
|
creationTimestamp: null
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
resources:
|
|
requests:
|
|
storage: 1Gi
|
|
status: {}
|
|
- name: git-auth
|
|
secret:
|
|
secretName: '{{ git_auth_secret }}'
|
|
status: {}
|