mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 10:59:59 +00:00
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:
1 parent
3d4a07da31
commit
910748ec41
3 files changed
+8
-8
No files matched your search
@@ -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 }}"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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": "⭐",
|
||||
|
||||
Reference in new issue
Block a user