Mirror of @tangled.org/core. Running on a Raspberry Pi Zero 2 (Please be gentle).
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

workflow,lexicons: allow setting per-step env vars

Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>

authored by

Anirudh Oppiliappan and committed by
Tangled
4904ddc6 99577302

+47 -60
api/tangled/cbor_gen.go

This is a binary file and will not be displayed.

api/tangled/tangledpipeline.go

This is a binary file and will not be displayed.

+1
cmd/gen.go
··· 29 29 tangled.Pipeline_ManualTriggerData{}, 30 30 tangled.Pipeline_PullRequestTriggerData{}, 31 31 tangled.Pipeline_PushTriggerData{}, 32 + tangled.Pipeline_Step_Environment_Elem{}, 32 33 tangled.Pipeline_Step{}, 33 34 tangled.Pipeline_TriggerMetadata{}, 34 35 tangled.Pipeline_TriggerRepo{},
+27 -58
lexicons/pipeline.json
··· 9 9 "key": "tid", 10 10 "record": { 11 11 "type": "object", 12 - "required": [ 13 - "triggerMetadata", 14 - "workflows" 15 - ], 12 + "required": ["triggerMetadata", "workflows"], 16 13 "properties": { 17 14 "triggerMetadata": { 18 15 "type": "ref", ··· 27 30 }, 28 31 "triggerMetadata": { 29 32 "type": "object", 30 - "required": [ 31 - "kind", 32 - "repo" 33 - ], 33 + "required": ["kind", "repo"], 34 34 "properties": { 35 35 "kind": { 36 36 "type": "string", 37 - "enum": [ 38 - "push", 39 - "pull_request", 40 - "manual" 41 - ] 37 + "enum": ["push", "pull_request", "manual"] 42 38 }, 43 39 "repo": { 44 40 "type": "ref", ··· 53 63 }, 54 64 "triggerRepo": { 55 65 "type": "object", 56 - "required": [ 57 - "knot", 58 - "did", 59 - "repo", 60 - "defaultBranch" 61 - ], 66 + "required": ["knot", "did", "repo", "defaultBranch"], 62 67 "properties": { 63 68 "knot": { 64 69 "type": "string" ··· 72 87 }, 73 88 "pushTriggerData": { 74 89 "type": "object", 75 - "required": [ 76 - "ref", 77 - "newSha", 78 - "oldSha" 79 - ], 90 + "required": ["ref", "newSha", "oldSha"], 80 91 "properties": { 81 92 "ref": { 82 93 "type": "string" ··· 91 110 }, 92 111 "pullRequestTriggerData": { 93 112 "type": "object", 94 - "required": [ 95 - "sourceBranch", 96 - "targetBranch", 97 - "sourceSha", 98 - "action" 99 - ], 113 + "required": ["sourceBranch", "targetBranch", "sourceSha", "action"], 100 114 "properties": { 101 115 "sourceBranch": { 102 116 "type": "string" ··· 116 140 "type": "array", 117 141 "items": { 118 142 "type": "object", 119 - "required": [ 120 - "key", 121 - "value" 122 - ], 143 + "required": ["key", "value"], 123 144 "properties": { 124 145 "key": { 125 146 "type": "string" ··· 131 158 }, 132 159 "workflow": { 133 160 "type": "object", 134 - "required": [ 135 - "name", 136 - "dependencies", 137 - "steps", 138 - "environment", 139 - "clone" 140 - ], 161 + "required": ["name", "dependencies", "steps", "environment", "clone"], 141 162 "properties": { 142 163 "name": { 143 164 "type": "string" ··· 151 184 "type": "array", 152 185 "items": { 153 186 "type": "object", 154 - "required": [ 155 - "key", 156 - "value" 157 - ], 187 + "required": ["key", "value"], 158 188 "properties": { 159 189 "key": { 160 190 "type": "string" ··· 172 208 "type": "array", 173 209 "items": { 174 210 "type": "object", 175 - "required": [ 176 - "registry", 177 - "packages" 178 - ], 211 + "required": ["registry", "packages"], 179 212 "properties": { 180 213 "registry": { 181 214 "type": "string" ··· 188 227 }, 189 228 "cloneOpts": { 190 229 "type": "object", 191 - "required": [ 192 - "skip", 193 - "depth", 194 - "submodules" 195 - ], 230 + "required": ["skip", "depth", "submodules"], 196 231 "properties": { 197 232 "skip": { 198 233 "type": "boolean" ··· 203 246 }, 204 247 "step": { 205 248 "type": "object", 206 - "required": [ 207 - "name", 208 - "command" 209 - ], 249 + "required": ["name", "command"], 210 250 "properties": { 211 251 "name": { 212 252 "type": "string" 213 253 }, 214 254 "command": { 215 255 "type": "string" 256 + }, 257 + "environment": { 258 + "type": "array", 259 + "items": { 260 + "type": "object", 261 + "required": ["key", "value"], 262 + "properties": { 263 + "key": { 264 + "type": "string" 265 + }, 266 + "value": { 267 + "type": "string" 268 + } 269 + } 270 + } 216 271 } 217 272 } 218 273 }
+7
workflow/compile.go
··· 97 97 Command: s.Command, 98 98 Name: s.Name, 99 99 } 100 + for k, v := range s.Environment { 101 + e := &tangled.Pipeline_Step_Environment_Elem{ 102 + Key: k, 103 + Value: v, 104 + } 105 + step.Environment = append(step.Environment, e) 106 + } 100 107 cw.Steps = append(cw.Steps, &step) 101 108 } 102 109 for k, v := range w.Environment {
+3 -2
workflow/def.go
··· 45 45 } 46 46 47 47 Step struct { 48 - Name string `yaml:"name"` 49 - Command string `yaml:"command"` 48 + Name string `yaml:"name"` 49 + Command string `yaml:"command"` 50 + Environment map[string]string `yaml:"environment"` 50 51 } 51 52 52 53 StringList []string
+9
workflow/def_test.go
··· 105 105 environment: 106 106 HOME: /home/foo bar/baz 107 107 CGO_ENABLED: 1 108 + 109 + steps: 110 + - name: Something 111 + command: echo "hello" 112 + environment: 113 + FOO: bar 114 + BAZ: qux 108 115 ` 109 116 110 117 wf, err := FromFile("test.yml", []byte(yamlData)) ··· 120 113 assert.Len(t, wf.Environment, 2) 121 114 assert.Equal(t, "/home/foo bar/baz", wf.Environment["HOME"]) 122 115 assert.Equal(t, "1", wf.Environment["CGO_ENABLED"]) 116 + assert.Equal(t, "bar", wf.Steps[0].Environment["FOO"]) 117 + assert.Equal(t, "qux", wf.Steps[0].Environment["BAZ"]) 123 118 }