66 lines
1.5 KiB
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" |