Skip to content

Commit dae742a

Browse files
stefanpennerclaude
andcommitted
Deep composite action tree for testing runner action resolution batching
Action graph (8 unique actions, depth 3): workflow → leaf-echo, composite-a, composite-b, composite-c composite-a → leaf-echo, leaf-sleep, composite-d composite-b → leaf-echo, leaf-sleep, composite-e composite-c → leaf-echo, composite-d, composite-e composite-d → leaf-echo, leaf-sleep, composite-f composite-e → leaf-echo, leaf-sleep, composite-f composite-f → leaf-echo, leaf-sleep Without batching: ~15-20 resolve API calls (one per composite per depth) With actions/runner#4296: ~3-4 calls (one batch per depth level) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
0 parents  commit dae742a

File tree

9 files changed

+105
-0
lines changed

9 files changed

+105
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Deep Composite Resolution Test
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
branches: [main]
7+
8+
jobs:
9+
resolve-storm:
10+
runs-on: ubuntu-latest
11+
steps:
12+
# 3 top-level composites + 1 leaf = depth 0 has 4 actions
13+
# Each composite fans out into 2-3 sub-actions per depth level
14+
# Total unique actions: 8 (leaf-echo, leaf-sleep, composite-a..f)
15+
# Without batching/dedup: ~15-20 resolve API calls
16+
# With PR #4296: ~3-4 resolve API calls
17+
- uses: actions/checkout@v4
18+
19+
- uses: stefanpenner/resolution-test/leaf-echo@main
20+
with:
21+
message: 'top-level leaf-echo'
22+
23+
- uses: stefanpenner/resolution-test/composite-a@main
24+
- uses: stefanpenner/resolution-test/composite-b@main
25+
- uses: stefanpenner/resolution-test/composite-c@main
26+
27+
- run: echo "All composites resolved and executed successfully"
28+
shell: bash

composite-a/action.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
name: 'Composite A'
2+
description: 'Depth-1 composite'
3+
runs:
4+
using: 'composite'
5+
steps:
6+
- uses: stefanpenner/resolution-test/leaf-echo@main
7+
with:
8+
message: 'from composite-a (depth 1)'
9+
- uses: stefanpenner/resolution-test/leaf-sleep@main
10+
- uses: stefanpenner/resolution-test/composite-d@main

composite-b/action.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
name: 'Composite B'
2+
description: 'Depth-1 composite'
3+
runs:
4+
using: 'composite'
5+
steps:
6+
- uses: stefanpenner/resolution-test/leaf-echo@main
7+
with:
8+
message: 'from composite-b (depth 1)'
9+
- uses: stefanpenner/resolution-test/leaf-sleep@main
10+
- uses: stefanpenner/resolution-test/composite-e@main

composite-c/action.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
name: 'Composite C'
2+
description: 'Depth-1 composite'
3+
runs:
4+
using: 'composite'
5+
steps:
6+
- uses: stefanpenner/resolution-test/leaf-echo@main
7+
with:
8+
message: 'from composite-c (depth 1)'
9+
- uses: stefanpenner/resolution-test/composite-d@main
10+
- uses: stefanpenner/resolution-test/composite-e@main

composite-d/action.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
name: 'Composite D'
2+
description: 'Depth-2 composite'
3+
runs:
4+
using: 'composite'
5+
steps:
6+
- uses: stefanpenner/resolution-test/leaf-echo@main
7+
with:
8+
message: 'from composite-d (depth 2)'
9+
- uses: stefanpenner/resolution-test/leaf-sleep@main
10+
- uses: stefanpenner/resolution-test/composite-f@main

composite-e/action.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
name: 'Composite E'
2+
description: 'Depth-2 composite'
3+
runs:
4+
using: 'composite'
5+
steps:
6+
- uses: stefanpenner/resolution-test/leaf-echo@main
7+
with:
8+
message: 'from composite-e (depth 2)'
9+
- uses: stefanpenner/resolution-test/leaf-sleep@main
10+
- uses: stefanpenner/resolution-test/composite-f@main

composite-f/action.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
name: 'Composite F'
2+
description: 'Depth-3 composite'
3+
runs:
4+
using: 'composite'
5+
steps:
6+
- uses: stefanpenner/resolution-test/leaf-echo@main
7+
with:
8+
message: 'from composite-f (depth 3)'
9+
- uses: stefanpenner/resolution-test/leaf-sleep@main

leaf-echo/action.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
name: 'Leaf Echo'
2+
description: 'Simple echo action used at many depths'
3+
inputs:
4+
message:
5+
description: 'Message to echo'
6+
default: 'hello from leaf-echo'
7+
runs:
8+
using: 'composite'
9+
steps:
10+
- run: echo "${{ inputs.message }}"
11+
shell: bash

leaf-sleep/action.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
name: 'Leaf Sleep'
2+
description: 'Trivial action that sleeps briefly'
3+
runs:
4+
using: 'composite'
5+
steps:
6+
- run: echo "leaf-sleep start" && echo "leaf-sleep done"
7+
shell: bash

0 commit comments

Comments
 (0)