tekton-pipelines/pipelines/app-pipeline.yaml

61 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
default: ""
- 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)
# 2. Build and Push Image (using standard Kaniko)
- name: build-and-push
runAfter: [fetch-repository]
taskRef:
name: kaniko
workspaces:
- name: source
workspace: shared-data
params:
- name: IMAGE
value: "ghcr.io/pingu-studio/$(params.app-name):$(params.git-revision)"
# 3. PREVIEW: Runs only on PR
- name: deploy-preview
when:
- input: "$(params.event-type)"
operator: in
values: ["pull_request"]
runAfter: [build-and-push]
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"