Pipelines as Code
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.
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__": co.main(default=main)
The definition is made of Python objects. This is because Conducto invites you to build pipelines like you build applications: with code.