What is pipeline-as-code versus UI-configured pipelines?

Answer

Pipeline-as-code defines the CI/CD pipeline configuration in a version-controlled file (Jenkinsfile, .github/workflows/ YAML, .gitlab-ci.yml, bitbucket-pipelines.yml) that lives alongside the application source code. Changes to the pipeline go through code review, have full history, and can be rolled back. UI-configured pipelines (classic Jenkins jobs, older Azure DevOps pipelines) are defined via a web interface, storing configuration in the CI server's database. Pipeline-as-code is the modern standard because it applies software engineering practices to the pipeline itself, enables developers to modify the pipeline alongside code changes in the same PR, supports multiple branches with different pipeline behaviors, and makes disaster recovery easy (no CI configuration is lost if the server is rebuilt). UI pipelines lack auditability and are hard to replicate across environments. All modern CI platforms (GitHub Actions, GitLab CI, CircleCI) use pipeline-as-code exclusively.