forked from tangled.org/core
this repo has no description
1{ 2 "lexicon": 1, 3 "id": "sh.tangled.pipeline", 4 "needsCbor": true, 5 "needsType": true, 6 "defs": { 7 "main": { 8 "type": "record", 9 "key": "tid", 10 "record": { 11 "type": "object", 12 "required": ["triggerMetadata", "workflows"], 13 "properties": { 14 "triggerMetadata": { 15 "type": "ref", 16 "ref": "#triggerMetadata" 17 }, 18 "workflows": { 19 "type": "array", 20 "items": { 21 "type": "ref", 22 "ref": "#workflow" 23 } 24 } 25 } 26 } 27 }, 28 "triggerMetadata": { 29 "type": "object", 30 "required": ["kind", "repo"], 31 "properties": { 32 "kind": { 33 "type": "string", 34 "enum": ["push", "pull_request", "manual"] 35 }, 36 "repo": { 37 "type": "ref", 38 "ref": "#triggerRepo" 39 }, 40 "push": { 41 "type": "ref", 42 "ref": "#pushTriggerData" 43 }, 44 "pullRequest": { 45 "type": "ref", 46 "ref": "#pullRequestTriggerData" 47 }, 48 "manual": { 49 "type": "ref", 50 "ref": "#manualTriggerData" 51 } 52 } 53 }, 54 "triggerRepo": { 55 "type": "object", 56 "required": ["knot", "did", "repo", "defaultBranch"], 57 "properties": { 58 "knot": { 59 "type": "string" 60 }, 61 "did": { 62 "type": "string", 63 "format": "did" 64 }, 65 "repo": { 66 "type": "string" 67 }, 68 "defaultBranch": { 69 "type": "string" 70 } 71 } 72 }, 73 "pushTriggerData": { 74 "type": "object", 75 "required": ["ref", "newSha", "oldSha"], 76 "properties": { 77 "ref": { 78 "type": "string" 79 }, 80 "newSha": { 81 "type": "string", 82 "minLength": 40, 83 "maxLength": 40 84 }, 85 "oldSha": { 86 "type": "string", 87 "minLength": 40, 88 "maxLength": 40 89 } 90 } 91 }, 92 "pullRequestTriggerData": { 93 "type": "object", 94 "required": ["sourceBranch", "targetBranch", "sourceSha", "action"], 95 "properties": { 96 "sourceBranch": { 97 "type": "string" 98 }, 99 "targetBranch": { 100 "type": "string" 101 }, 102 "sourceSha": { 103 "type": "string", 104 "minLength": 40, 105 "maxLength": 40 106 }, 107 "action": { 108 "type": "string" 109 } 110 } 111 }, 112 "manualTriggerData": { 113 "type": "object", 114 "properties": { 115 "inputs": { 116 "type": "array", 117 "items": { 118 "type": "object", 119 "required": ["key", "value"], 120 "properties": { 121 "key": { 122 "type": "string" 123 }, 124 "value": { 125 "type": "string" 126 } 127 } 128 } 129 } 130 } 131 }, 132 "workflow": { 133 "type": "object", 134 "required": ["name", "dependencies", "steps", "environment", "clone"], 135 "properties": { 136 "name": { 137 "type": "string" 138 }, 139 "dependencies": { 140 "type": "ref", 141 "ref": "#dependencies" 142 }, 143 "steps": { 144 "type": "array", 145 "items": { 146 "type": "ref", 147 "ref": "#step" 148 } 149 }, 150 "environment": { 151 "type": "array", 152 "items": { 153 "type": "object", 154 "required": ["key", "value"], 155 "properties": { 156 "key": { 157 "type": "string" 158 }, 159 "value": { 160 "type": "string" 161 } 162 } 163 } 164 }, 165 "clone": { 166 "type": "ref", 167 "ref": "#cloneOpts" 168 } 169 } 170 }, 171 "dependencies": { 172 "type": "array", 173 "items": { 174 "type": "object", 175 "required": ["registry", "packages"], 176 "properties": { 177 "registry": { 178 "type": "string" 179 }, 180 "packages": { 181 "type": "array", 182 "items": { 183 "type": "string" 184 } 185 } 186 } 187 } 188 }, 189 "cloneOpts": { 190 "type": "object", 191 "required": ["skip", "depth", "submodules"], 192 "properties": { 193 "skip": { 194 "type": "boolean" 195 }, 196 "depth": { 197 "type": "integer" 198 }, 199 "submodules": { 200 "type": "boolean" 201 } 202 } 203 }, 204 "step": { 205 "type": "object", 206 "required": ["name", "command"], 207 "properties": { 208 "name": { 209 "type": "string" 210 }, 211 "command": { 212 "type": "string" 213 }, 214 "environment": { 215 "type": "array", 216 "items": { 217 "type": "object", 218 "required": ["key", "value"], 219 "properties": { 220 "key": { 221 "type": "string" 222 }, 223 "value": { 224 "type": "string" 225 } 226 } 227 } 228 } 229 } 230 } 231 } 232}