tekton-pipelines/pipelines/app-pipeline.yaml

66 lines
1.5 KiB
YAML

apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
name: app-pipeline
namespace: tekton-pipelines
spec:
params:
- name: app-name
- name: git-url
- name: git-revision
- name: pr-number
- name: event-type
workspaces:
- name: shared-data
tasks:
- name: fetch-repository
taskRef:
name: git-clone
workspaces:
- name: output
workspace: shared-data
params:
- name: url
value: $(params.git-url)
- name: revision
value: $(params.git-revision)
- name: build-app
runAfter: [fetch-repository]
taskRef:
name: build-node
workspaces:
- name: source
workspace: shared-data
- name: build-and-push-image
runAfter: [build-app]
taskRef:
name: kaniko
workspaces:
- name: source
workspace: shared-data
params:
- name: IMAGE
value: "ghcr.io/pingu-studio/$(params.app-name):$(params.git-revision)"
- name: deploy-preview
when:
- input: "$(params.event-type)"
operator: in
values: ["pull_request"]
runAfter: [build-and-push-image]
taskRef:
name: manage-preview
workspaces:
- name: source
workspace: shared-data
params:
- name: app-name
value: $(params.app-name)
- name: pr-number
value: $(params.pr-number)
- name: image-tag
value: $(params.git-revision)
- name: action
value: "apply"