-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
def.cue
96 lines (72 loc) · 1.57 KB
/
def.cue
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package spin
#Base: {
application: string
dockerAccount?: string
kubernetesAccount?: string
gcsAccount?: string
...
}
#Pipeline: {
#Base
id: string
application: string
stages: [...#Stage]
triggers: [...#Trigger]
notifications: [...#NotificationPipeline]
...
}
#Stage: #StageDeploy | #StageManualJudgement | #StageWait
// StageDeploy represent the stage "deployManifest".
#StageDeploy: {
_type: "deploy"
name: string | *"Deploy \(deploy.image)"
deploy: {
image: string
manifest: string
}
}
// StageManualJudgement represent the stage "manualJudgment".
#StageManualJudgement: {
_type: "manualJudgement"
name: string | *"Manual Judgement"
manualJudgement: {}
}
// StageWait represent the stage "wait".
#StageWait: {
_type: "wait"
name: string | *"Wait \(wait.duration)s"
wait: duration: int | *30
}
#Trigger: #TriggerDocker | #TriggerPubSub
#TriggerDocker: {
_type: "docker"
docker: {
tag: string | *".*"
image: string
}
}
#TriggerPubSub: {
_type: "pubsub"
pubsub: {
pubsubSystem: string | *"google"
action: string | *"INSERT"
tag: string
subscriptionName: string
}
}
#Notification: {
type: #NotificationType
address: string
...
}
#NotificationPipeline: {
#Notification
messages: [#NotificationPipelineWhen]: string
}
#NotificationStage: {
#Notification
messages: [#NotificationStageWhen]: string
}
#NotificationType: string | "email" | *"slack" | "microsoftteams" | "twilio"
#NotificationPipelineWhen: "starting" | "complete" | "failed"
#NotificationStageWhen: string