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