github.workflow-dispatch-launch ​
Launch ephemeral runner on appropriate cloud backend
Launch an ephemeral runner for a workflow_dispatch event.
Routes to the appropriate backend-specific launch workflow:
- fargate → runner.execution-launch
- gce / cloud_run → runner.execution-launch-gcp
- azure_container_apps_job → runner.execution-launch-azure-container-apps
- do_app_job → runner.execution-launch-do-app-job
The child is dispatched over the async bus (start_remote), not resolved in this process: most of these launchers belong to provider libraries that a V2 one-library-per-image runner does not carry.
State machine (async — does not block the Kafka consumer): pending → action_start → awaiting (child launch workflow dispatched) awaiting → action_child_done → completed (engine callback when child succeeds) awaiting → action_child_failed → failed (engine callback when child fails) awaiting → action_timeout → failed (auto_advance after 300 s)
Inputs:
- organization_uuid: Organization UUID (public) (required)
- runner_group_uuid: Runner group UUID (required)
- backend_type: Backend type string (required)
- github_workflow_run_ref: GitHub workflow run reference (required for context)
- repository_full_name: Full name "owner/repo" (required)
- actor: Username who triggered the workflow (required)
- workflow_inputs: Dictionary of workflow inputs to pass as env vars
Outputs (terminal state_data):
- runner_execution_uuid: Runner execution UUID
- task_arn: ECS task ARN (if applicable)
- launched_at: ISO timestamp of launch
Overview ​
| Property | Value |
|---|---|
| Workflow type | Linear |
| Library | App-github |
| Version | 1.0 |
Input Schema ​
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
organization_uuid | string | Yes | — | Organization UUID (public) |
runner_group_uuid | uuid | Yes | — | Runner group UUID |
backend_type | string | Yes | — | Backend type |
github_workflow_run_ref | integer | No | — | Workflow run ID |
repository_full_name | string | Yes | — | Repository full name |
actor | string | Yes | — | Actor who triggered workflow |
workflow_inputs | dict | No | — | Workflow inputs as env vars |
runner_image | string | No | — | Per-job custom container image |
workflow_run_id | string | No | — | Parent DAG run ID |
Output Schema ​
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
runner_execution_uuid | string | No | — | Runner execution UUID |
task_arn | string | No | — | ECS task ARN (if applicable) |
launched_at | string | No | — | ISO timestamp of launch |
child_workflow_ref | string | No | — | Child launch workflow reference |
launch_workflow_type | string | No | — | Backend-specific launch workflow type |
started_at | string | No | — | ISO timestamp child was started |
organization_uuid | string | No | — | Organization UUID (public) |
runner_group_uuid | string | No | — | Runner group UUID |
backend_type | string | No | — | Backend type |
github_workflow_run_ref | integer | No | — | Workflow run ID |
repository_full_name | string | No | — | Repository full name |
actor | string | No | — | Actor who triggered workflow |
workflow_inputs | dict | No | — | Workflow inputs as env vars |
runner_image | string | No | — | Per-job custom container image |
workflow_run_id | string | No | — | Parent DAG run ID |
failure_reason | string | No | — | — |
failure_type | string | No | — | — |
failed_action | string | No | — | — |
failed_at_state | string | No | — | — |
failed_step | string | No | — | — |
failed_layer | string | No | — | — |
error | string | No | — | — |
error_type | string | No | — | — |
States ​
| State | Initial | Terminal | Success | Auto-advance | Description |
|---|---|---|---|---|---|
pending | Yes | No | — | start | — |
awaiting | No | No | — | timeout | — |
completed | No | Yes | Yes | — | — |
failed | No | Yes | No | — | — |
State Diagram ​
Transitions ​
| From | Action | To | Description |
|---|---|---|---|
pending | start | awaiting | — |
awaiting | child_done | completed | — |
awaiting | child_failed | failed | — |
awaiting | timeout | failed | — |
* (any state) | fail | failed | — |
API Usage ​
POST /api/workflows/start
Content-Type: application/json
{
"workflow_type": "github.workflow-dispatch-launch",
"initial_data": {
"organization_uuid": "value",
"runner_group_uuid": "value",
"backend_type": "value",
"repository_full_name": "value"
}
}