run block using run_workflow interface (#3224)

This commit is contained in:
Shuchang Zheng
2025-08-18 13:25:54 -07:00
committed by GitHub
parent 7c41de3d70
commit 54f27a8601
5 changed files with 40 additions and 22 deletions

View File

@@ -1,7 +1,8 @@
import structlog
from fastapi import BackgroundTasks, Request
from skyvern.forge import app
from skyvern.forge.sdk.core import skyvern_context
from skyvern.forge.sdk.executor.factory import AsyncExecutorFactory
from skyvern.forge.sdk.schemas.organizations import Organization
from skyvern.forge.sdk.workflow.models.workflow import WorkflowRequestBody, WorkflowRun
from skyvern.schemas.runs import WorkflowRunRequest
@@ -44,12 +45,15 @@ async def ensure_workflow_run(
async def execute_blocks(
request: Request,
background_tasks: BackgroundTasks,
api_key: str,
block_labels: list[str],
workflow_id: str,
workflow_run_id: str,
organization: Organization,
browser_session_id: str | None = None,
) -> WorkflowRun:
) -> None:
"""
Runs one or more blocks of a workflow.
"""
@@ -61,12 +65,14 @@ async def execute_blocks(
block_labels=block_labels,
)
workflow_run = await app.WORKFLOW_SERVICE.execute_workflow(
workflow_run_id=workflow_run_id,
api_key=api_key,
await AsyncExecutorFactory.get_executor().execute_workflow(
request=request,
background_tasks=background_tasks,
organization=organization,
block_labels=block_labels,
workflow_id=workflow_id,
workflow_run_id=workflow_run_id,
max_steps_override=None,
browser_session_id=browser_session_id,
api_key=api_key,
block_labels=block_labels,
)
return workflow_run

View File

@@ -68,6 +68,7 @@ async def run_workflow(
request_id: str | None = None,
request: Request | None = None,
background_tasks: BackgroundTasks | None = None,
block_labels: list[str] | None = None,
) -> WorkflowRun:
workflow_run = await prepare_workflow(
workflow_id=workflow_id,
@@ -88,6 +89,7 @@ async def run_workflow(
max_steps_override=max_steps,
browser_session_id=workflow_request.browser_session_id,
api_key=api_key,
block_labels=block_labels,
)
return workflow_run