Documentation
¶
Index ¶
- Constants
- func ContainerPipelineWorkflow(ctx wf.Context, input payload.PipelineInput) (*payload.PipelineOutput, error)
- func DAGWorkflow(ctx wf.Context, input payload.DAGWorkflowInput) (*payload.DAGWorkflowOutput, error)
- func ExecuteContainerWorkflow(ctx wf.Context, input payload.ContainerExecutionInput) (*payload.ContainerExecutionOutput, error)
- func ExtractOutput(def payload.OutputDefinition, ...) (string, error)
- func ExtractOutputs(definitions []payload.OutputDefinition, ...) (map[string]string, error)
- func GenericContainerPipelineWorkflow(ctx wf.Context, ...) (*generic.PipelineOutput[payload.ContainerExecutionOutput], error)
- func GenericParallelContainersWorkflow(ctx wf.Context, ...) (*generic.ParallelOutput[payload.ContainerExecutionOutput], error)
- func LoopWorkflow(ctx wf.Context, input payload.LoopInput) (*payload.LoopOutput, error)
- func ParallelContainersWorkflow(ctx wf.Context, input payload.ParallelInput) (*payload.ParallelOutput, error)
- func ParameterizedLoopWorkflow(ctx wf.Context, input payload.ParameterizedLoopInput) (*payload.LoopOutput, error)
- func SubstituteInputs(containerInput *payload.ContainerExecutionInput, inputs []payload.InputMapping, ...) error
- func WorkflowWithParameters(ctx wf.Context, input payload.ContainerExecutionInput, ...) (*payload.ContainerExecutionOutput, error)
Constants ¶
const FailureStrategyFailFast = generic.FailureStrategyFailFast
FailureStrategyFailFast indicates that workflow should stop on first failure. Deprecated: Use generic workflow.FailureStrategyFailFast instead.
Variables ¶
This section is empty.
Functions ¶
func ContainerPipelineWorkflow ¶
func ContainerPipelineWorkflow(ctx wf.Context, input payload.PipelineInput) (*payload.PipelineOutput, error)
ContainerPipelineWorkflow executes containers sequentially.
func DAGWorkflow ¶
func DAGWorkflow(ctx wf.Context, input payload.DAGWorkflowInput) (*payload.DAGWorkflowOutput, error)
DAGWorkflow executes containers in a DAG (Directed Acyclic Graph) pattern. This allows for complex dependencies between containers where execution order is determined by the dependency graph rather than simple sequential or parallel execution.
Example:
input := payload.DAGWorkflowInput{
Nodes: []payload.DAGNode{
{Name: "build", Container: buildInput},
{Name: "test", Container: testInput, Dependencies: []string{"build"}},
{Name: "deploy", Container: deployInput, Dependencies: []string{"test"}},
},
}
output, err := docker.DAGWorkflow(ctx, input)
func ExecuteContainerWorkflow ¶
func ExecuteContainerWorkflow(ctx wf.Context, input payload.ContainerExecutionInput) (*payload.ContainerExecutionOutput, error)
ExecuteContainerWorkflow runs a single container and returns results.
func ExtractOutput ¶
func ExtractOutput(def payload.OutputDefinition, containerOutput *payload.ContainerExecutionOutput) (string, error)
ExtractOutput extracts a value from container output based on the definition.
func ExtractOutputs ¶
func ExtractOutputs(definitions []payload.OutputDefinition, containerOutput *payload.ContainerExecutionOutput) (map[string]string, error)
ExtractOutputs extracts all outputs defined in the list.
func GenericContainerPipelineWorkflow ¶ added in v1.16.0
func GenericContainerPipelineWorkflow( ctx wf.Context, input generic.PipelineInput[*payload.ContainerExecutionInput, payload.ContainerExecutionOutput], ) (*generic.PipelineOutput[payload.ContainerExecutionOutput], error)
GenericContainerPipelineWorkflow executes containers sequentially using generic types directly. This is the preferred entry point for new code.
func GenericParallelContainersWorkflow ¶ added in v1.16.0
func GenericParallelContainersWorkflow( ctx wf.Context, input generic.ParallelInput[*payload.ContainerExecutionInput, payload.ContainerExecutionOutput], ) (*generic.ParallelOutput[payload.ContainerExecutionOutput], error)
GenericParallelContainersWorkflow executes multiple containers in parallel using generic types directly. This is the preferred entry point for new code.
func LoopWorkflow ¶
LoopWorkflow executes containers in a loop over items (withItems pattern).
func ParallelContainersWorkflow ¶
func ParallelContainersWorkflow(ctx wf.Context, input payload.ParallelInput) (*payload.ParallelOutput, error)
ParallelContainersWorkflow executes multiple containers in parallel.
func ParameterizedLoopWorkflow ¶
func ParameterizedLoopWorkflow(ctx wf.Context, input payload.ParameterizedLoopInput) (*payload.LoopOutput, error)
ParameterizedLoopWorkflow executes containers with parameterized loops (withParam pattern).
func SubstituteInputs ¶
func SubstituteInputs(containerInput *payload.ContainerExecutionInput, inputs []payload.InputMapping, stepOutputs map[string]map[string]string) error
SubstituteInputs applies input mappings to container environment variables. It resolves step outputs and substitutes them into the container input.
func WorkflowWithParameters ¶
func WorkflowWithParameters(ctx wf.Context, input payload.ContainerExecutionInput, params []payload.WorkflowParameter) (*payload.ContainerExecutionOutput, error)
WorkflowWithParameters executes a workflow with input parameters.
Parameters are substituted in environment variables and commands.
Example:
input := payload.ContainerExecutionInput{
Image: "alpine:latest",
Command: []string{"echo", "{{.version}}"},
Env: map[string]string{"VERSION": "{{.version}}"},
}
params := []payload.WorkflowParameter{
{Name: "version", Value: "v1.2.3"},
}
output, err := docker.WorkflowWithParameters(ctx, input, params)
Types ¶
This section is empty.