Skip to main content

Workflows

Workflows form the framework for orchestrating your jobs. Effective use of workflows reduces development time and allows for efficient use of resources. This document describes workflow features and provides examples.

Overview#

A workflow is a selection of jobs that are to be run autonomously. A pipeline consists of multiple workflows that define the entire build and test process. Workflows allow users to:

  • Run FPGA designs in clean environments to quickly locate bugs.
  • Reuse jobs in different workflows.
  • Run multiple jobs in parallel.

Configuration Examples#

The following example shows a single workflow that will run two jobs in parallel. To create a workflow, you need a workflow: section in bbx./config.yaml. The workflow requires a unique name, in the provided example the workflow has been named workflow-example. Once the workflow has been declared, you need to allocate jobs to the workflow. This is performed with the jobs key followed a list of jobs to be performed by the workflow. In this example, there are two jobs example-build and example-test. Once the workflow is triggered, these two jobs will run concurrently.

runners:
example-runner:
image: ubuntu-vitis-2020-1
jobs:
example-build:
runner: example-runner
steps:
...
example-test:
runner: example-runner
steps:
...
workflows:
workflow-example:
jobs:
- example-build
- example-test