YAML vs Classic Pipelines
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Azure Pipelines enables developers to automate a wide variety of tasks, ranging from executing a batch file to setting up a complete continuous integration (CI) and continuous delivery (CD) solution for their applications.
Azure Pipelines supports a wide range of languages, platforms, and tools, and offers two types of pipelines to choose from: YAML-based and Classic pipeline editors.
Note
If you are new to Azure Pipelines, it is recommended to start with YAML pipelines. For existing Classic pipelines, you can choose to continue using them or migrate to YAML pipelines.
Define pipelines using YAML
Your pipeline configuration resides in a YAML file named azure-pipelines.yml
, alongside your application.
The YAML file is versioned alongside your application code, adhering to the same branching structure.
Each branch can customize the pipeline by editing the
azure-pipelines.yml
file.Keeping the pipeline configuration in version control ensures that any changes that cause issues or unexpected outcomes can be easily identified within your codebase.
For instructions, see Create your first pipeline for a step by step guide to building a sample application from a Git repository.
Define pipelines using the Classic interface
Classic pipelines are created in the Azure DevOps web portal with the Classic user interface editor. You can define a pipeline to build, test your code, and then publish your artifact (binary). Additionally, you can define a release pipeline to consume your binary (artifact) and deploy it to specific targets.
Classic pipelines are created in the Azure DevOps web portal with the Classic user interface editor. You can define a build pipeline to build, test your code, and then publish your artifact (binary). Additionally, you can define a release pipeline to consume your binary (artifact) and deploy it to specific targets.
For instructions, see build and deploy for step by step guides to building and deploying your application with Classic Pipelines.
Feature availability
Feature | Description | YAML | Classic Pipeline | Classic Release |
---|---|---|---|---|
Agents | A software component that runs on a virtual machine or a physical machine and is responsible for executing the tasks defined in your Azure Pipelines. | doc | doc | doc |
Approvals | Control your deployment workflow by requiring designated approvers to approve before deploying to a stage. | doc | doc | |
Artifacts | Download and publish your binaries and various types of packages to different destinations. | doc | doc | doc |
Caching | Reduce build time by caching and reusing dependencies from previous runs. | doc | doc | |
Conditions | Specify conditions under which a step, job, or stage should run. | doc | doc | doc |
Container jobs | Specify jobs to run in a container. | doc | ||
Demands | Ensure that the capabilities your pipeline needs are present on the running agent. | doc | doc | doc |
Dependencies | Specify a requirement that must be met in order to run the next stage. | doc | doc | |
Deployment groups & Environments | Deployment groups (Classic): Define a set of target machines each equipped with a deployment agent. Environments (YAML): A collection of resources targeted for deployment. |
doc | doc | |
Deployment jobs | A collection of deployment steps that are run sequentially against the environment. | doc | ||
Gates | Automate release controls by evaluating health signals from external services before completing a deployment. | doc | ||
Jobs | A series of sequential steps that form the smallest unit of work that can be scheduled to run. | doc | doc | doc |
Library | A collection of assets that can be used in your Azure Pipelines. The Library contains two types of assets: Variable groups and Secure files. | doc | doc | doc |
Service connections | Enable connection to an external service required to execute tasks in a job. | doc | doc | doc |
Service containers | Enable you to manage the lifecycle of a containerized service. most commonly used with container jobs. | doc | ||
Stages | Organize jobs within a pipeline. | doc | doc | |
Task groups | Encapsulate a sequence of tasks into a single reusable task. | doc | doc | |
Tasks | The building blocks that define the steps that make up a pipeline job. | doc | doc | doc |
Templates | Define reusable content, logic, and parameters. | doc | ||
Triggers | Define the event that causes a pipeline to run. | doc | doc | doc |
Variables | A placeholder for values that can be used throughout your pipeline's execution. | doc | doc | doc |
Variable groups | Use to store values and secrets that you want to manage and share across multiple pipelines. | doc | doc | doc |
Feature | Description | YAML | Classic Pipeline | Classic Release |
---|---|---|---|---|
Agents | A software component that runs on a virtual machine or a physical machine and is responsible for executing the tasks defined in your Azure Pipelines. | doc | doc | doc |
Approvals | Control your deployment workflow by requiring designated approvers to approve before deploying to a stage. | doc | doc | |
Artifacts | Download and publish your binaries and various types of packages to different destinations. | doc | doc | doc |
Conditions | Specify conditions under which a step, job, or stage should run. | doc | doc | doc |
Container jobs | Specify jobs to run in a container. | doc | ||
Demands | Ensure that the capabilities your pipeline needs are present on the running agent. | doc | doc | doc |
Dependencies | Specify a requirement that must be met in order to run the next stage. | doc | doc | |
Deployment groups & Environments | Deployment groups (Classic): Define a set of target machines each equipped with a deployment agent. Environments (YAML): A collection of resources targeted for deployment. |
doc | doc | |
Deployment jobs | A collection of deployment steps that are run sequentially against the environment. | doc | ||
Gates | Automate release controls by evaluating health signals from external services before completing a deployment. | doc | ||
Jobs | A series of sequential steps that form the smallest unit of work that can be scheduled to run. | doc | doc | doc |
Library | A collection of assets that can be used in your Azure Pipelines. The Library contains two types of assets: Variable groups and Secure files. | doc | doc | doc |
Service connections | Enable connection to an external service required to execute tasks in a job. | doc | doc | doc |
Stages | Organize jobs within a pipeline. | doc | doc | |
Task groups | Encapsulate a sequence of tasks into a single reusable task. | doc | doc | |
Tasks | The building blocks that define the steps that make up a pipeline job. | doc | doc | doc |
Templates | Define reusable content, logic, and parameters. | doc | ||
Triggers | Define the event that causes a pipeline to run. | doc | doc | doc |
Variables | A placeholder for values that can be used throughout your pipeline's execution. | doc | doc | doc |
Variable groups | Use to store values and secrets that you want to manage and share across multiple pipelines. | doc | doc | doc |
Feature | Description | YAML | Classic Pipeline | Classic Release |
---|---|---|---|---|
Agents | A software component that runs on a virtual machine or a physical machine and is responsible for executing the tasks defined in your Azure Pipelines. | doc | doc | doc |
Approvals | Control your deployment workflow by requiring designated approvers to approve before deploying to a stage. | doc | doc | |
Artifacts | Download and publish your binaries and various types of packages to different destinations. | doc | doc | doc |
Conditions | Specify conditions under which a step, job, or stage should run. | doc | doc | doc |
Container jobs | Specify jobs to run in a container. | doc | ||
Demands | Ensure that the capabilities your pipeline needs are present on the running agent. | doc | doc | doc |
Dependencies | Specify a requirement that must be met in order to run the next stage. | doc | doc | |
Deployment groups | Define a set of target machines each equipped with a deployment agent. | doc | ||
Deployment jobs | A collection of deployment steps that are run sequentially against the environment. | doc | ||
Gates | Automate release controls by evaluating health signals from external services before completing a deployment. | doc | ||
Jobs | A series of sequential steps that form the smallest unit of work that can be scheduled to run. | doc | doc | doc |
Library | A collection of assets that can be used in your Azure Pipelines. The Library contains two types of assets: Variable groups and Secure files. | doc | doc | doc |
Service connections | Enable connection to an external service required to execute tasks in a job. | doc | doc | doc |
Stages | Organize jobs within a pipeline. | doc | doc | |
Task groups | Encapsulate a sequence of tasks into a single reusable task. | doc | doc | |
Tasks | The building blocks that define the steps that make up a pipeline job. | doc | doc | doc |
Templates | Define reusable content, logic, and parameters. | doc | ||
Triggers | Define the event that causes a pipeline to run. | doc | doc | doc |
Variables | A placeholder for values that can be used throughout your pipeline's execution. | doc | doc | doc |
Variable groups | Use to store values and secrets that you want to manage and share across multiple pipelines. | doc | doc | doc |