diff --git a/.gitea/workflows/wake.yml b/.gitea/workflows/wake.yml new file mode 100644 index 0000000..6869244 --- /dev/null +++ b/.gitea/workflows/wake.yml @@ -0,0 +1,37 @@ +# GENERATED by script/coord-init.sh โ€” DO NOT EDIT BY HAND (machine-table-v1). +# Regenerate: bash script/coord-init.sh --table --out +# Cross-machine coordination wake channel โ€” parameterized rendering of the +# hand-written #6590 wake.yml (semantic parity: machine: dual-shape label +# guard + status= comment guard + from:, per-machine runner label, +# concurrency group with cancel-in-progress, constant local payload file). +# Iron invariants (wiki rules/cross-machine-agent-ops ยง0): events contribute +# TIMING only, never content โ€” the payload is a constant file local to the +# target machine; the workflow references no Gitea secret. +name: wake + +on: + issues: + types: [labeled] + issue_comment: + types: [created] + +permissions: {} + +jobs: + wake: + if: | + (github.event_name == 'issues' && + ((github.event.label != null && github.event.label.name == 'machine:wf-mac01') || + (github.event.changes != null && contains(github.event.changes.added_labels.*.name, 'machine:wf-mac01')))) || + (github.event_name == 'issue_comment' && startsWith(github.event.comment.body, 'status=') && contains(github.event.issue.labels.*.name, 'from:wf-mac01')) + runs-on: [self-hosted, wf-mac01] + concurrency: + group: wake-wf-mac01 + cancel-in-progress: true + steps: + - name: wake local dispatcher via prompt_async (constant local payload) + # shell: default (POSIX runner) + run: | + curl -sS --fail-with-body --max-time 30 -X POST http://127.0.0.1:4097/prompt_async \ + -H 'content-type: application/json' \ + -d @/Users/zhusihong/.config/octopus/wf-4097/wake-payload-wf-mac01.json