- Build Automation
- Continuous Integration
- Deployment Delivery
- Continuous Delivery
- Traceability and Compliance
- Hooks for other products

- The Pipeline defines the stages
- A stage contains jobs
- A Job runs on an Agent Or is "Serverless"
- An Agent is the process where all work is done
When we look at the stage, then this is normally something called like a CI stage or staging or acceptance or a production stage.
A stage has one or more jobs, and that defines the steps that need to be executed on the agent. So the job contains steps, and a step is either a script that you want to run on the agent machine or it is a task that you installed in your Azure DevOps instance. Out of the box, there are already quite some tasks that you can choose from, but you can also install them from the Azure Marketplace.
- A Stage has one or more Jobs
- A Job defines the steps that need to be run in the same execution environment (agent)
- A Job contains Steps
- A Step is either:
- A script you run
- A task you use that is installed in your Azure DevOps instance
Task
The task is a building block for any automation in your pipeline.
Stages and jobs are more an orchestration concepts around these steps. The task is a package of software that will take care of what the step can do. It will be downloaded to the agent, and the task will have an entry point that will be called when executing the task.
There are built‑in tasks, and you can install your own. Also good to know is that a task has a version. This version is designated with the at sign.
Example:
steps:
script: date /t
displayName: Get the date
script: dir
workingDirectory: $(Agent.BuildDirectory)
displayName: List contents of a folder
script: |
set MYVAR=foo
set
displayName: Set a variable and then display all
env:
aVarFromYaml: comeValue
Trigger
A trigger is something that's set up to tell the pipeline when to run. You can cinfigure a pipeline to run upon a push to a repository, at scheduled ties, or upon the completion of another build.
-
Pipeline triggers
-
Build Completion triggers
Example:
schedules:
cron: string # cron syntax defining a schedule
displayName: string # friendly name given to a specific schedule
branches:
include: [string] # which branches to schedule applies to
exclude: [string] # which branches to exlude from the schedule