RSS Reader using AT Protocol rssbase.io
feed atom rss reader atproto social
2

Configure Feed

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

add paths in workflows

Romain Gautier (Jul 3, 2026, 2:07 AM +0200) 7a331d92 643ad25d

+83 -23
+73 -17
.tangled/workflow.schema.json
··· 2 2 "$schema": "http://json-schema.org/draft-07/schema#", 3 3 "$id": "https://rssbase.io/schemas/tangled-workflow.schema.json", 4 4 "title": "Tangled Spindle workflow", 5 - "description": "Local JSON Schema for Tangled CI / Spindle workflow files under .tangled/workflows/*.yml. Based on https://docs.tangled.org/spindles.", 5 + "description": "Local JSON Schema for Tangled CI / Spindle workflow files under .tangled/workflows/*.yml. Based on https://docs.tangled.org/spindles and Tangled's workflow parser.", 6 6 "type": "object", 7 7 "additionalProperties": false, 8 8 "required": ["when", "engine"], 9 9 "properties": { 10 10 "when": { 11 11 "title": "Trigger conditions", 12 - "description": "Defines when the workflow runs. Each condition can match events, branches, and/or tags.", 12 + "description": "Defines when the workflow runs. Each condition can match events, branches, tags, and optional changed-file path globs.", 13 13 "type": "array", 14 14 "minItems": 1, 15 15 "items": { "$ref": "#/definitions/trigger" }, ··· 26 26 "body": [ 27 27 { "event": ["push"], "tag": ["v*"] } 28 28 ] 29 + }, 30 + { 31 + "label": "path-filtered push", 32 + "body": [ 33 + { "event": "push", "branch": "main", "paths": ["src/**", "package.json"] } 34 + ] 29 35 } 30 36 ] 31 37 }, ··· 56 62 "description": "Recursively fetch git submodules. Default: false.", 57 63 "type": "boolean", 58 64 "default": false 65 + }, 66 + "tags": { 67 + "description": "Fetch Git tags during clone. Default depends on the Spindle runner.", 68 + "type": "boolean" 59 69 } 60 70 }, 61 71 "defaultSnippets": [ 62 72 { 63 73 "label": "default clone options", 64 - "body": { "skip": false, "depth": 1, "submodules": false } 74 + "body": { "skip": false, "depth": 1, "submodules": false, "tags": false } 65 75 } 66 76 ] 67 77 }, ··· 244 254 { "event": ["pull_request"], "branch": ["main"] } 245 255 ], 246 256 "engine": "nixery", 247 - "clone": { "skip": false, "depth": 1, "submodules": false }, 257 + "clone": { "skip": false, "depth": 1, "submodules": false, "tags": false }, 248 258 "dependencies": { 249 259 "nixpkgs": ["nodejs", "go"] 250 260 }, ··· 262 272 "required": ["event"], 263 273 "properties": { 264 274 "event": { 265 - "description": "Events that can trigger this condition.", 266 - "type": "array", 267 - "minItems": 1, 268 - "uniqueItems": true, 269 - "items": { 270 - "type": "string", 271 - "enum": ["push", "pull_request", "manual"] 272 - } 275 + "description": "Events that can trigger this condition. Tangled accepts either a single string or a list.", 276 + "$ref": "#/definitions/eventList" 273 277 }, 274 278 "branch": { 275 - "description": "Branch patterns. For push, matches pushed branches. For pull_request, matches target branches. No effect for manual. Supports * and ** globs.", 276 - "$ref": "#/definitions/patternList" 279 + "description": "Branch patterns. For push, matches pushed branches. For pull_request, matches target branches. No effect for manual. Supports * and ** globs. Tangled accepts either a single string or a list.", 280 + "$ref": "#/definitions/stringOrPatternList" 277 281 }, 278 282 "tag": { 279 - "description": "Tag patterns for push events. No effect for pull_request or manual. Supports * and ** globs.", 280 - "$ref": "#/definitions/patternList" 283 + "description": "Tag patterns for push events. No effect for pull_request or manual. Supports * and ** globs. Tangled accepts either a single string or a list.", 284 + "$ref": "#/definitions/stringOrPatternList" 285 + }, 286 + "paths": { 287 + "description": "Changed-file path globs. If set, the workflow only runs when at least one changed file matches one of these patterns. Supports * and ** globs. Tangled accepts either a single string or a list.", 288 + "$ref": "#/definitions/stringOrPatternList" 281 289 } 282 290 }, 283 291 "allOf": [ 284 292 { 285 293 "if": { 286 294 "properties": { 287 - "event": { "contains": { "const": "push" } } 295 + "event": { 296 + "anyOf": [ 297 + { "const": "push" }, 298 + { "type": "array", "contains": { "const": "push" } } 299 + ] 300 + } 288 301 }, 289 302 "required": ["event"] 290 303 }, ··· 294 307 { "required": ["tag"] } 295 308 ] 296 309 } 310 + }, 311 + { 312 + "if": { 313 + "properties": { 314 + "event": { 315 + "anyOf": [ 316 + { "const": "pull_request" }, 317 + { "type": "array", "contains": { "const": "pull_request" } } 318 + ] 319 + } 320 + }, 321 + "required": ["event"] 322 + }, 323 + "then": { 324 + "required": ["branch"] 325 + } 297 326 } 298 327 ], 299 328 "defaultSnippets": [ ··· 302 331 "body": { "event": ["push"], "branch": ["main"] } 303 332 }, 304 333 { 334 + "label": "path-filtered push to main", 335 + "body": { "event": "push", "branch": "main", "paths": ["src/**"] } 336 + }, 337 + { 305 338 "label": "pull request to main", 306 339 "body": { "event": ["pull_request"], "branch": ["main"] } 307 340 }, ··· 315 348 } 316 349 ] 317 350 }, 351 + "eventList": { 352 + "oneOf": [ 353 + { 354 + "type": "string", 355 + "enum": ["push", "pull_request", "manual"] 356 + }, 357 + { 358 + "type": "array", 359 + "minItems": 1, 360 + "uniqueItems": true, 361 + "items": { 362 + "type": "string", 363 + "enum": ["push", "pull_request", "manual"] 364 + } 365 + } 366 + ] 367 + }, 318 368 "patternList": { 319 369 "type": "array", 320 370 "minItems": 1, 321 371 "items": { "type": "string" } 372 + }, 373 + "stringOrPatternList": { 374 + "oneOf": [ 375 + { "type": "string" }, 376 + { "$ref": "#/definitions/patternList" } 377 + ] 322 378 }, 323 379 "environment": { 324 380 "type": "object",
+7 -3
.tangled/workflows/build.yml
··· 2 2 3 3 when: 4 4 - event: ["push", "manual"] 5 - branch: ["main"] 6 - - event: ["pull_request"] 7 - branch: ["main"] 5 + branch: main 6 + paths: 7 + - application/** 8 + - event: pull_request 9 + branch: main 10 + paths: 11 + - application/** 8 12 9 13 engine: microvm 10 14 image: nixos
+3 -3
.tangled/workflows/check.yml
··· 2 2 3 3 when: 4 4 - event: ["push", "manual"] 5 - branch: ["main"] 6 - - event: ["pull_request"] 7 - branch: ["main"] 5 + branch: main 6 + - event: pull_request 7 + branch: main 8 8 9 9 engine: microvm 10 10 image: nixos