# Workflows

Workflows are server-side logic that can schedule and combine server tasks and worker tasks to automate complex operations.

Workflows are created from a workflow template chosen from a set maintained by the server administrators, plus data coming from user input.

See the Workflows for an overview, and below for technical details. There is also documentation of the internal API used by workflow orchestrators.

- Event reactions
  - Supported actions
    - `skip-if-lookup-result-changed`
    - `send-notification`
    - `update-collection-with-artifacts`
    - `update-collection-with-data`
    - `retry-with-delays`
    - `record-in-task-history`
- Group of work requests
- WorkflowTemplate
  - `runtime_parameters` values
  - Workflow Creation
- Well-known workflow templates
- Available workflow implementations
  - Workflow `autopkgtest`
  - Workflow `blhc`
  - Workflow `create_child_workspace`
  - Workflow `debdiff`
  - Workflow `debian_pipeline`
    - When `enable_regression_tracking` is set
  - Workflow `lintian`
  - Workflow `make_signed_source`
  - Workflow `noop`
  - Workflow `package_publish`
    - Permission considerations
    - Resource accounting considerations
    - Workflow definition
  - Workflow `package_upload`
  - Workflow `piuparts`
  - Workflow `qa`
    - Behavior with `update_qa_results` set to True
    - Behavior with `enable_regression_tracking` set to True
    - Handling of `fail_on`
  - Workflow `reverse_dependencies_autopkgtest`
  - Workflow `sbuild`
  - Workflow `update_environments`
  - Workflow `update_suite`
  - Workflow `update_suites`
    - Key generation stage
    - Main stage
- Runtime status workflows