0%

DevOps-Tekton

事件触发的自动化流水线[1]#

Example1 [chat]#

下面是一个包含EventListener、TriggerTemplate和PipelineRun的Tekton YAML模板示例,其中包含interceptors、bindings和template,旨在从Git中拉取代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
apiVersion: tekton.dev/v1beta1
kind: EventListener ##
metadata:
name: my-event-listener
spec:
interceptors: ##
- cel:
filter: "body.repository.full_name == 'my-org/my-repo'"
triggers:
- name: my-trigger
bindings: ##
- name: my-binding
ref: my-binding
template: ##
name: my-trigger-template
---
apiVersion: tekton.dev/v1beta1
kind: TriggerTemplate
metadata:
name: my-trigger-template
spec:
params:
- name: repoUrl
description: The URL of the git repository to clone
resourcetemplates:
- apiVersion: tekton.dev/v1alpha1
kind: PipelineRun
metadata:
name: my-pipeline-run ##
spec:
pipelineRef:
name: my-pipeline ##
params:
- name: repoUrl
value: $(tt.params.repoUrl)
---
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
name: my-pipeline ##
spec:
tasks:
- name: git-clone ##
taskRef:
name: git-clone
params:
- name: REPO_URL
value: $(inputs.params.repoUrl)
---
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: git-clone ##
spec:
inputs:
params:
- name: REPO_URL
type: string
steps:
- name: git-clone
image: alpine/git
script:
- apk add --no-cache git
- git clone $(inputs.params.REPO_URL)
---
apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
name: my-pipeline-run ##
spec:
pipelineRef:
name: my-pipeline
params:
- name: repoUrl
value: https://github.com/my-org/my-repo.git

Example2 [2]#

参考#

  1. 《10丨模块十:Kubernetes的生产化运维》 云原生训练营

  2. 第一季:第 5 集 云原生 CI 中的强者 Tekton

    相关的git-代码