refactor(ci): mark deploy-mode sequencing with a many-legged crawler

The traffic light said "gate" everywhere else in the pipeline, on the PR
scope check and on the dependency gate, so reusing it for the deploy-mode
order made an ordering knob look like another pass/fail barrier. A crawler
reads as what sequencing is: segments following each other in a line.

Both failure-report entries in the orchestrator move to the ladybug in the
same commit, because they already held the caterpillar and one workflow
cannot spend the same glyph on ordering and on failures. The ladybug is what
the bug-report issue template already uses.

Only the test fixture spells the glyph out; the parser derives its segment
heads from the workflow's own run-name, so it follows the change on its own.
The traffic light stays where it means a gate, and as the release-candidate
symbol in the glossary.

A run title created before this commit still carries the traffic light, so
recovering its sequencing input from the title yields nothing and a retrigger
leaves that one input on the workflow default.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
kevinveenbirkenbachandClaude Opus 5 committed 2026-08-06 20:58:36 +02:00
1 parent 3d4a07da31
commit 910748ec41
3 files changed
+8 -8

No files matched your search

+4 -4
View File
@@ -27,7 +27,7 @@ on:
type: string
default: ""
sequencing:
description: "🚦 Deploy-mode order per line. 'serial': swarm, then compose, then host. 'parallel': all at once. 'auto': serial above the job threshold."
description: "🐛 Deploy-mode order per line. 'serial': swarm, then compose, then host. 'parallel': all at once. 'auto': serial above the job threshold."
required: false
type: string
default: "auto"
@@ -173,7 +173,7 @@ jobs:
secrets: inherit
sequencing:
name: 🚦 Sequencing
name: 🐛 Sequencing
runs-on: ubuntu-latest
timeout-minutes: 60
outputs:
@@ -492,7 +492,7 @@ jobs:
secrets: inherit
report-main-failures:
name: 🐛 Report main role failures
name: 🐞 Report main role failures
needs:
- test-deploy-single-node-priority
- test-deploy-compose-priority
@@ -510,7 +510,7 @@ jobs:
contents: read
steps:
- uses: actions/checkout@v7.0.0
- name: 🐛 Open or append issues for failed roles
- name: 🐞 Open or append issues for failed roles
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: python3 -m cli.meta.ci.report_failures --run-id "${{ github.run_id }}" --repo "${{ github.repository }}"
+2 -2
View File
@@ -1,5 +1,5 @@
name: "🕹️ Manual"
run-name: "🕹️ ${{ inputs.mode_fail_fast && '🛑 ' || '' }}${{ inputs.sequencing != 'auto' && format('🚦{0} ', inputs.sequencing == 'serial' && '序' || '并') || '' }}${{ inputs.workspace != 'auto' && format('🧑‍💻{0} ', inputs.workspace == 'true' && '是' || '否') || '' }}${{ inputs.instructions != 'auto' && format('📖{0} ', inputs.instructions == 'true' && '是' || '否') || '' }}${{ inputs.filesystem != '' && format('🗄️{0} ', inputs.filesystem) || '' }}${{ inputs.distros != '' && format('🐧{0} ', inputs.distros) || '' }}${{ inputs.lifecycles != '' && format('♻️{0} ', inputs.lifecycles) || '' }}${{ inputs.modes != 'swarm compose host' && format('🚀{0} ', inputs.modes) || '' }}${{ inputs.priority != '' && format('⭐{0} ', inputs.priority) || '' }}${{ inputs.whitelist != '' && format('🎯{0}', inputs.whitelist) || '🔀 diff (origin/main)' }}"
run-name: "🕹️ ${{ inputs.mode_fail_fast && '🛑 ' || '' }}${{ inputs.sequencing != 'auto' && format('🐛{0} ', inputs.sequencing == 'serial' && '序' || '并') || '' }}${{ inputs.workspace != 'auto' && format('🧑‍💻{0} ', inputs.workspace == 'true' && '是' || '否') || '' }}${{ inputs.instructions != 'auto' && format('📖{0} ', inputs.instructions == 'true' && '是' || '否') || '' }}${{ inputs.filesystem != '' && format('🗄️{0} ', inputs.filesystem) || '' }}${{ inputs.distros != '' && format('🐧{0} ', inputs.distros) || '' }}${{ inputs.lifecycles != '' && format('♻️{0} ', inputs.lifecycles) || '' }}${{ inputs.modes != 'swarm compose host' && format('🚀{0} ', inputs.modes) || '' }}${{ inputs.priority != '' && format('⭐{0} ', inputs.priority) || '' }}${{ inputs.whitelist != '' && format('🎯{0}', inputs.whitelist) || '🔀 diff (origin/main)' }}"
concurrency:
group: global-ci-${{ github.repository }}-${{ github.ref_name }}
@@ -39,7 +39,7 @@ on:
default: ""
type: string
sequencing:
description: "🚦 Deploy-mode order per line. 'serial': swarm, then compose, then host. 'parallel': all at once. 'auto': serial above 65 jobs per line."
description: "🐛 Deploy-mode order per line. 'serial': swarm, then compose, then host. 'parallel': all at once. 'auto': serial above 65 jobs per line."
required: false
default: "auto"
type: choice
+2 -2
View File
@@ -12,7 +12,7 @@ from utils.github import run_name
TPL = (
"🕹️ "
"${{ inputs.sequencing != 'auto'"
" && format('🚦{0} ', inputs.sequencing == 'serial' && '序' || '并') || '' }}"
" && format('🐛{0} ', inputs.sequencing == 'serial' && '序' || '并') || '' }}"
"${{ inputs.mode_fail_fast && '🛑 ' || '' }}"
"${{ inputs.workspace != 'auto'"
" && format('🧑{0} ', inputs.workspace == 'true' && '是' || '否') || '' }}"
@@ -28,7 +28,7 @@ class SegmentTests(unittest.TestCase):
self.assertEqual(
run_name.heads(TPL),
{
"sequencing": "🚦",
"sequencing": "🐛",
"workspace": "🧑",
"distros": "🐧",
"priority": "⭐",