Pipelines as Code

Define pipelines in code for power and flexibility

Conducto pipelines are defined in Python. They invoke shell commands that can call any package, library, or tool that runs in Linux. Once launched, a pipeline's runtime state is stored in a tree.

Runtime state is stored in a tree

You can launch a pipeline from the command line or by connecting to GitHub. See our Getting Started articles for a quick walk through.

Pipelines are composed of three types of nodes:

  • Parallel nodes run children at the same time
  • Serial nodes run children consecutively
  • Exec nodes run shell commands

Here's the full definition for pipeline shown above:

import conducto as co
IMG = co.Image("python:3.9", copy_dir=".", reqs_docker=True)

def main() -> co.Serial:
  with co.Serial(image=IMG, requires_docker=True) as root:
    with co.Parallel(name="Init") as init:
      init["Build"] = co.Exec("docker build .")
      init["Lint"] = co.Exec("black --check .")
      init["Unit Test"] = co.Exec("python unit_test.py")
    root["Deploy"] = co.Exec("bash deploy_aws.sh")
    root["Integration Test"] = co.Exec("bash int_test.sh")
  return root

if __name__ == "__main__":

The definition is made of Python objects. This is because Conducto invites you to build pipelines like you build applications: with code.

Next steps