Bird
Raised Fist0
Azurecloud~10 mins

Azure Pipelines overview - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Process Flow - Azure Pipelines overview
Code Commit Trigger
↓
Pipeline Starts
↓
Build Stage
↓
Test Stage
↓
Deploy Stage
↓
Pipeline Ends
This flow shows how Azure Pipelines runs automatically when code is committed, then builds, tests, and deploys the application step-by-step.
Execution Sample
Azure
trigger:
  - main

pool:
  vmImage: 'ubuntu-latest'

steps:
  - script: echo Hello, Azure Pipelines!
This pipeline triggers on commits to main, runs on an Ubuntu VM, and prints a greeting message.
Process Table
StepActionEvaluationResult
1Detect commit on 'main' branchCommit on 'main'?Yes, pipeline triggered
2Allocate VM from pool 'ubuntu-latest'VM available?VM allocated
3Run script stepExecute 'echo Hello, Azure Pipelines!'Output: Hello, Azure Pipelines!
4Complete pipelineAll steps done?Pipeline succeeded
💡 Pipeline ends after all steps complete successfully
Status Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
Pipeline StatusNot startedTriggeredRunningRunningSucceeded
VM StatusNoneNoneAllocatedAllocatedReleased
Script OutputNoneNoneNoneHello, Azure Pipelines!Hello, Azure Pipelines!
Key Moments - 3 Insights
Why does the pipeline start only when code is committed to 'main'?
Because the trigger is set to the 'main' branch, as shown in execution_table row 1, so only commits there start the pipeline.
What happens if the VM is not available?
The pipeline would wait or fail at step 2 in execution_table because it cannot allocate the VM to run the steps.
Why is the script output important?
It shows the pipeline ran the commands correctly, as seen in execution_table step 3 and variable_tracker Script Output.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the pipeline status after step 2?
ATriggered
BRunning
CSucceeded
DNot started
💡 Hint
Check the 'Pipeline Status' row in variable_tracker after Step 2
At which step does the pipeline print 'Hello, Azure Pipelines!'?
AStep 3
BStep 1
CStep 2
DStep 4
💡 Hint
Look at the 'Script Output' in variable_tracker and execution_table step 3
If the trigger was changed to 'develop' branch, what would happen?
APipeline triggers on all branches
BPipeline triggers on commits to 'main' branch
CPipeline triggers on commits to 'develop' branch
DPipeline never triggers
💡 Hint
Refer to execution_table step 1 about branch triggers
Concept Snapshot
Azure Pipelines run automatically on code commits.
They use a VM to build, test, and deploy.
Triggers specify which branch starts the pipeline.
Steps run in order: build, test, deploy.
Pipeline status updates as steps complete.
Full Transcript
Azure Pipelines start when code is committed to a specified branch, like 'main'. The pipeline allocates a virtual machine to run tasks. It runs steps such as building the code, testing it, and deploying the application. Each step updates the pipeline status. The example pipeline prints a message to show it ran successfully. If the VM is unavailable, the pipeline waits or fails. Changing the trigger branch changes when the pipeline runs.

Practice

(1/5)
1. What is the main purpose of Azure Pipelines?
easy
A. To automate building, testing, and deploying code
B. To store large amounts of data
C. To create virtual machines
D. To monitor network traffic

Solution

  1. Step 1: Understand Azure Pipelines role

    Azure Pipelines automate the process of building, testing, and deploying code changes.
  2. Step 2: Compare options with purpose

    Options B, C, and D describe other Azure services, not pipelines.
  3. Final Answer:

    To automate building, testing, and deploying code -> Option A
  4. Quick Check:

    Azure Pipelines = automate build/test/deploy [OK]
Hint: Remember pipelines automate code workflows [OK]
Common Mistakes:
  • Confusing pipelines with storage services
  • Thinking pipelines create virtual machines
  • Mixing pipelines with monitoring tools
2. Which file format is commonly used to define Azure Pipelines?
easy
A. .json
B. .txt
C. .xml
D. .yaml

Solution

  1. Step 1: Identify pipeline definition format

    Azure Pipelines use YAML files to define build and deployment steps.
  2. Step 2: Eliminate other formats

    JSON, XML, and TXT are not standard for pipeline definitions in Azure.
  3. Final Answer:

    .yaml -> Option D
  4. Quick Check:

    Pipeline config = YAML file [OK]
Hint: YAML files define pipeline steps clearly [OK]
Common Mistakes:
  • Choosing JSON instead of YAML
  • Confusing XML with pipeline config
  • Thinking plain text files define pipelines
3. Given this YAML snippet in an Azure Pipeline:
trigger:
  branches:
    include:
      - main

steps:
- script: echo Hello, world!

What happens when you push code to the main branch?
medium
A. The pipeline fails due to syntax error
B. The pipeline ignores the push
C. The pipeline runs and prints 'Hello, world!'
D. The pipeline runs but does nothing

Solution

  1. Step 1: Understand trigger configuration

    The pipeline triggers on pushes to the 'main' branch as specified.
  2. Step 2: Analyze steps section

    The single step runs a script that echoes 'Hello, world!'.
  3. Final Answer:

    The pipeline runs and prints 'Hello, world!' -> Option C
  4. Quick Check:

    Trigger on main runs echo script [OK]
Hint: Trigger on branch runs defined script [OK]
Common Mistakes:
  • Assuming pipeline ignores main branch
  • Thinking pipeline does nothing on trigger
  • Believing syntax error exists in snippet
4. You wrote this YAML for Azure Pipelines but it never triggers:
trigger:
  branches:
    exclude:
      - main

steps:
- script: echo Build started

What is the likely problem?
medium
A. The pipeline excludes the main branch, so pushes to main don't trigger it
B. The script syntax is incorrect
C. The trigger keyword is misspelled
D. The pipeline requires a separate build agent

Solution

  1. Step 1: Review trigger exclude setting

    The pipeline excludes the 'main' branch, so pushes to 'main' won't start it.
  2. Step 2: Check other parts

    The script syntax and trigger keyword are correct; no build agent issue is indicated.
  3. Final Answer:

    The pipeline excludes the main branch, so pushes to main don't trigger it -> Option A
  4. Quick Check:

    Exclude main branch stops trigger [OK]
Hint: Exclude means branch won't trigger pipeline [OK]
Common Mistakes:
  • Thinking script syntax is wrong
  • Assuming trigger keyword typo
  • Believing build agent is missing
5. You want to run tests only when code is pushed to the develop branch and deploy only when code is pushed to main. How should you configure triggers in your Azure Pipelines YAML?
hard
A. Use a single pipeline triggered on both branches and run all steps always
B. Use two separate pipelines: one triggered on 'develop' for tests, another on 'main' for deploy
C. Trigger only on 'main' and manually run tests
D. Trigger only on 'develop' and deploy manually

Solution

  1. Step 1: Understand branch-specific triggers

    Running tests and deploy on different branches requires separate triggers.
  2. Step 2: Choose pipeline structure

    Two pipelines allow independent triggers and steps per branch, matching requirements.
  3. Step 3: Evaluate other options

    Single pipeline running all steps always doesn't separate concerns; manual runs reduce automation benefits.
  4. Final Answer:

    Use two separate pipelines: one triggered on 'develop' for tests, another on 'main' for deploy -> Option B
  5. Quick Check:

    Separate pipelines for branch-specific tasks [OK]
Hint: Separate pipelines for different branch tasks [OK]
Common Mistakes:
  • Using one pipeline for all branches without conditions
  • Triggering only on main and skipping tests automation
  • Triggering only on develop and missing deploy automation