Ayllu contains a plugin called ayllu-build which is responsible for executing build manifests in a CI/CD environment. The design of the build system prioritizes the ability to run the entire workflow locally.

An Example Local Workflow

Build manifests are written in Nickel.

mkdir -p my-test-repo/.ayllu/build
cd my-test-repo && git init
# create a simple workflow that prints "Hello" and "World"
cat <<EOF > .ayllu/build/main.ncl
{
  workflows = [
    {
      name = "Simple",
      steps = [
        {
          name = "Hello",
          input = "echo -n Hello"
        },
        {
          name = "World",
          input = "echo -n World"
        }
      ]
    }
  ]
}
EOF
# validate the build plan and generate a DOT file to stdout
ayllu_build plan
>>>  2023-12-14T21:58:37.777493Z  INFO ayllu_build:66: logger initialized
>>>  digraph {
>>>      0 [ label = "Workflow: Simple" ]
>>>      1 [ label = "Step: Hello" ]
>>>      2 [ label = "Step: World" ]
>>>      0 -> 1 [ label = "0" ]
>>>      0 -> 2 [ label = "0" ]
>>>  }
# if you have graphviz installed you can visualize this output:
ayllu_build plan | dot -Tx11
# finally you can execute the workflow locally
ayllu_build evaluate