Many build tools use a classic task-based approach for organizing the CI/CD pipeline. Among these tools, there are both old (Ant, NAnt) and modern ones (Gradle, Cake, Nuke).

Let’s start with the definition of the CI/CD pipeline.

CI/CD Pipeline

By CI/CD pipeline, we will mean a sequence of stages (targets, tasks) describing and forming the process of software build, test, and deployment. Typically it has the form of a graph. Directed acyclic graph structure to be more precise. Look:

It’s a simple variation of the CI/CD pipeline. Each blue box is a stage/target/task. As you might have guessed, arrows mean dependencies.

Since I’m better familiar with Cake than with other build tools, I would use it for further explanation.

#devops

Limitations of Task-Based Build Tools
1.25 GEEK