Pipeline as Code

adopt

We moved this pattern to adopt, because it is used by nearly every team and project now and is an important part of our automation.

For Jenkins, we often use a mix of Job DSL and Jenkins Pipelines and recently also used Gitlab Pipelines.

Revisions:

assess | March 2017

Continuous Integration and Delivery is a critical part of our development and deployment process at AOE. Using Jenkins for many years the "instructions" how to build, test and deploy applications were scattered between many custom scripts and the pipeline was often maintained by manual maintenance of Jenkins jobs. Soon, we realized that we need a more native way to express the full CI/CD pipeline process in code and manage it in version control.

Being an important part of each project, the pipeline configuration should be managed as code and rolled out automatically - this also allows us to manage the pipeline itself applying the same standards that apply to application code.

While some teams started using Jenkins' JobDSL plugin, others explored the new Jenkins Pipeline - in both ways, the build artifacts should be published to an artifact repository such as Artifactory.