Pipeline as code is a practice of defining deployment pipelines through source code, such as Git. Pipeline as code is part of a larger “as code” movement that includes infrastructure as code.
With pipeline as code, teams can configure builds, tests, and deployment in code that is trackable and stored in a centralized source repository. Teams can use a declarative YAML approach or a vendor-specific programming language, such as Jenkins and Groovy, but the premise remains the same.
A pipeline as code file specifies the stages, jobs, and actions for a pipeline to perform. Because the file is versioned, changes in pipeline code can be tested in branches with the corresponding application release.
The pipeline as code model of creating continuous integration pipelines is an industry best practice, but deployment pipelines used to be created very differently.
Early in continuous integration, deployment pipelines were set up as point-and-click or through a graphical user interface (GUI). This presented several challenges:
The pipeline as code model corrected many of these pain points and offered the flexibility teams needed to execute efficiently.
Pipeline as code comes with many of the same benefits the other “as code” models have, such as:
Pipeline as code also has operational and practical benefits:
The pipeline as code model creates automated processes that help developers build applications more efficiently. Having everything documented in a source repository allows for greater visibility and collaboration so that everyone can continually improve processes.
by Fabio Busatto
You can connect CI/CD pipelines and artifacts for multiple related projects to make managing interactions easy.
Learn more
by Chrissie Buchanan
Learn how to implement and measure a successful CI/CD pipeline strategy and help your DevOps team deliver higher quality software, faster!
Learn more
by Chrissie Buchanan and William Chia
How a good CI/CD strategy generates revenue and keeps developers happy.
Learn more
GitLab is more than just source code management or CI/CD. It is a full software development lifecycle & DevOps tool in a single application.
Try GitLab Free