191 lines
6.4 KiB
YAML
191 lines
6.4 KiB
YAML
|
apiVersion: tekton.dev/v1beta1
|
||
|
kind: PipelineRun
|
||
|
metadata:
|
||
|
name: build
|
||
|
spec:
|
||
|
pipelineSpec:
|
||
|
timeouts:
|
||
|
pipeline: "2h0m0s"
|
||
|
tasks: "1h0m0s"
|
||
|
finally: "0h30m0s"
|
||
|
params:
|
||
|
- name: image-name
|
||
|
description: The name for the built image
|
||
|
type: string
|
||
|
- name: path-to-image-context
|
||
|
description: The path to the build context
|
||
|
type: string
|
||
|
- name: path-to-dockerfile
|
||
|
description: The path to the Dockerfile
|
||
|
type: string
|
||
|
tasks:
|
||
|
- name: report-pending
|
||
|
taskRef:
|
||
|
resolver: git
|
||
|
params:
|
||
|
- name: url
|
||
|
value: https://github.com/tektoncd/catalog.git
|
||
|
- name: revision
|
||
|
value: df36b3853a5657fd883015cdbf07ad6466918acf
|
||
|
- name: pathInRepo
|
||
|
value: task/gitea-set-status/0.1/gitea-set-status.yaml
|
||
|
runAfter:
|
||
|
- fetch-repository
|
||
|
params:
|
||
|
- name: CONTEXT
|
||
|
value: "$(params.JOB_NAME)"
|
||
|
- name: REPO_FULL_NAME
|
||
|
value: "$(params.REPO_OWNER)/$(params.REPO_NAME)"
|
||
|
- name: GITEA_HOST_URL
|
||
|
value: code.fizz.buzz
|
||
|
- name: SHA
|
||
|
value: "$(tasks.fetch-repository.results.commit)"
|
||
|
- name: DESCRIPTION
|
||
|
value: "Build $(params.JOB_NAME) has started"
|
||
|
- name: STATE
|
||
|
value: pending
|
||
|
- name: TARGET_URL
|
||
|
value: "https://tekton.fizz.buzz/#/namespaces/$(context.pipelineRun.namespace)/pipelineruns/$(context.pipelineRun.name)"
|
||
|
- name: fetch-repository
|
||
|
taskRef:
|
||
|
resolver: git
|
||
|
params:
|
||
|
- name: url
|
||
|
value: https://github.com/tektoncd/catalog.git
|
||
|
- name: revision
|
||
|
value: df36b3853a5657fd883015cdbf07ad6466918acf
|
||
|
- name: pathInRepo
|
||
|
value: task/git-clone/0.9/git-clone.yaml
|
||
|
workspaces:
|
||
|
- name: output
|
||
|
workspace: git-source
|
||
|
params:
|
||
|
- name: url
|
||
|
value: $(params.REPO_URL)
|
||
|
- name: revision
|
||
|
value: $(params.PULL_BASE_SHA)
|
||
|
- name: deleteExisting
|
||
|
value: "true"
|
||
|
- name: build-image-runner
|
||
|
taskRef:
|
||
|
resolver: git
|
||
|
params:
|
||
|
- name: url
|
||
|
value: https://github.com/tektoncd/catalog.git
|
||
|
- name: revision
|
||
|
value: df36b3853a5657fd883015cdbf07ad6466918acf
|
||
|
- name: pathInRepo
|
||
|
value: task/kaniko/0.6/kaniko.yaml
|
||
|
params:
|
||
|
- name: IMAGE
|
||
|
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)"
|
||
|
- name: CONTEXT
|
||
|
value: $(params.path-to-image-context)
|
||
|
- name: DOCKERFILE
|
||
|
value: $(params.path-to-dockerfile)
|
||
|
- name: BUILDER_IMAGE
|
||
|
value: "gcr.io/kaniko-project/executor:v1.12.1"
|
||
|
- name: EXTRA_ARGS
|
||
|
value:
|
||
|
- "--destination=$(params.image-name)" # Also write the :latest image
|
||
|
- --cache=true
|
||
|
- --cache-copy-layers
|
||
|
- --cache-repo=harbor.fizz.buzz/kanikocache/cache
|
||
|
- --use-new-run # Should result in a speed-up
|
||
|
- --reproducible # To remove timestamps so layer caching works.
|
||
|
- --snapshot-mode=redo
|
||
|
- --skip-unused-stages=true
|
||
|
- --registry-mirror=dockerhub.dockerhub.svc.cluster.local
|
||
|
workspaces:
|
||
|
- name: source
|
||
|
workspace: git-source
|
||
|
- name: dockerconfig
|
||
|
workspace: docker-credentials
|
||
|
runAfter:
|
||
|
- fetch-repository
|
||
|
finally:
|
||
|
- name: report-success
|
||
|
when:
|
||
|
- input: "$(tasks.status)"
|
||
|
operator: in
|
||
|
values: ["Succeeded", "Completed"]
|
||
|
taskRef:
|
||
|
resolver: git
|
||
|
params:
|
||
|
- name: url
|
||
|
value: https://github.com/tektoncd/catalog.git
|
||
|
- name: revision
|
||
|
value: df36b3853a5657fd883015cdbf07ad6466918acf
|
||
|
- name: pathInRepo
|
||
|
value: task/gitea-set-status/0.1/gitea-set-status.yaml
|
||
|
params:
|
||
|
- name: CONTEXT
|
||
|
value: "$(params.JOB_NAME)"
|
||
|
- name: REPO_FULL_NAME
|
||
|
value: "$(params.REPO_OWNER)/$(params.REPO_NAME)"
|
||
|
- name: GITEA_HOST_URL
|
||
|
value: code.fizz.buzz
|
||
|
- name: SHA
|
||
|
value: "$(tasks.fetch-repository.results.commit)"
|
||
|
- name: DESCRIPTION
|
||
|
value: "Build $(params.JOB_NAME) has succeeded"
|
||
|
- name: STATE
|
||
|
value: success
|
||
|
- name: TARGET_URL
|
||
|
value: "https://tekton.fizz.buzz/#/namespaces/$(context.pipelineRun.namespace)/pipelineruns/$(context.pipelineRun.name)"
|
||
|
- name: report-failure
|
||
|
when:
|
||
|
- input: "$(tasks.status)"
|
||
|
operator: in
|
||
|
values: ["Failed"]
|
||
|
taskRef:
|
||
|
resolver: git
|
||
|
params:
|
||
|
- name: url
|
||
|
value: https://github.com/tektoncd/catalog.git
|
||
|
- name: revision
|
||
|
value: df36b3853a5657fd883015cdbf07ad6466918acf
|
||
|
- name: pathInRepo
|
||
|
value: task/gitea-set-status/0.1/gitea-set-status.yaml
|
||
|
params:
|
||
|
- name: CONTEXT
|
||
|
value: "$(params.JOB_NAME)"
|
||
|
- name: REPO_FULL_NAME
|
||
|
value: "$(params.REPO_OWNER)/$(params.REPO_NAME)"
|
||
|
- name: GITEA_HOST_URL
|
||
|
value: code.fizz.buzz
|
||
|
- name: SHA
|
||
|
value: "$(tasks.fetch-repository.results.commit)"
|
||
|
- name: DESCRIPTION
|
||
|
value: "Build $(params.JOB_NAME) has failed"
|
||
|
- name: STATE
|
||
|
value: failure
|
||
|
- name: TARGET_URL
|
||
|
value: "https://tekton.fizz.buzz/#/namespaces/$(context.pipelineRun.namespace)/pipelineruns/$(context.pipelineRun.name)"
|
||
|
workspaces:
|
||
|
- name: git-source
|
||
|
- name: docker-credentials
|
||
|
workspaces:
|
||
|
- name: git-source
|
||
|
volumeClaimTemplate:
|
||
|
spec:
|
||
|
storageClassName: "nfs-client"
|
||
|
accessModes:
|
||
|
- ReadWriteOnce
|
||
|
resources:
|
||
|
requests:
|
||
|
storage: 10Gi
|
||
|
subPath: rust-source
|
||
|
- name: docker-credentials
|
||
|
secret:
|
||
|
secretName: harbor-plain
|
||
|
serviceAccountName: build-bot
|
||
|
timeout: 240h0m0s
|
||
|
params:
|
||
|
- name: image-name
|
||
|
value: "harbor.fizz.buzz/private/ta-waybar-pipewire"
|
||
|
- name: path-to-image-context
|
||
|
value: .
|
||
|
- name: path-to-dockerfile
|
||
|
value: docker/ta_waybar_pipewire/Dockerfile
|