Bird
Raised Fist0
Azurecloud~5 mins

Build pipeline basics in Azure - Cheat Sheet & Quick Revision

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
Recall & Review
beginner
What is a build pipeline in Azure DevOps?
A build pipeline is an automated process that compiles your code, runs tests, and creates packages or artifacts ready for deployment.
Click to reveal answer
beginner
Name the main stages of a typical build pipeline.
The main stages are: 1) Source code retrieval, 2) Build/compile, 3) Run tests, 4) Publish artifacts.
Click to reveal answer
beginner
What is the purpose of 'agents' in Azure build pipelines?
Agents are machines or containers that run the tasks in your pipeline, like compiling code or running tests.
Click to reveal answer
beginner
How does continuous integration relate to build pipelines?
Continuous integration means automatically building and testing code changes frequently to catch problems early.
Click to reveal answer
beginner
What is an artifact in the context of build pipelines?
An artifact is the output of a build, like compiled code or packages, that can be used later for deployment.
Click to reveal answer
What does a build pipeline NOT typically do?
ACompile source code
BRun automated tests
CDeploy code to production
DPublish build artifacts
In Azure DevOps, what runs the tasks in a build pipeline?
AAgents
BRepositories
CArtifacts
DBranches
Which stage comes first in a build pipeline?
ARun tests
BRetrieve source code
CDeploy to environment
DPublish artifacts
What is the main goal of continuous integration?
ABuild and test code frequently
BDeploy code manually
CWrite documentation
DCreate user interfaces
What is an artifact in a build pipeline?
AA bug report
BSource code
CA pipeline trigger
DOutput files from the build
Explain the main steps involved in a build pipeline and their purpose.
Think about what happens from code to ready-to-deploy package.
You got /4 concepts.
    Describe how agents work in Azure DevOps build pipelines and why they are important.
    Agents are like workers doing the pipeline jobs.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a build pipeline in Azure DevOps?
      easy
      A. To manually test code changes
      B. To store code in a repository
      C. To automate the process of preparing code for deployment
      D. To monitor user activity on a website

      Solution

      1. Step 1: Understand the role of a build pipeline

        A build pipeline automates tasks like compiling code and running tests when code changes.
      2. Step 2: Identify the main goal

        The main goal is to prepare code automatically for deployment or further steps.
      3. Final Answer:

        To automate the process of preparing code for deployment -> Option C
      4. Quick Check:

        Build pipeline purpose = automate code preparation [OK]
      Hint: Build pipelines automate code prep, not manual tasks [OK]
      Common Mistakes:
      • Confusing build pipeline with code repository
      • Thinking build pipelines monitor user activity
      • Assuming build pipelines are for manual testing
      2. Which YAML snippet correctly defines a trigger for a build pipeline on the 'main' branch?
      easy
      A. trigger:\n branches:\n - main
      B. trigger:\n branches:\n exclude:\n - main
      C. trigger:\n paths:\n include:\n - main
      D. trigger:\n branches:\n include:\n - main

      Solution

      1. Step 1: Understand trigger syntax in YAML

        The trigger block uses 'branches' with 'include' to specify branches that start the pipeline.
      2. Step 2: Check each option

        trigger:\n branches:\n include:\n - main correctly includes 'main' branch under 'branches' and 'include'. trigger:\n branches:\n exclude:\n - main excludes 'main', which disables trigger on it. trigger:\n paths:\n include:\n - main uses 'paths' which triggers on file changes, not branches. trigger:\n branches:\n - main misses 'include' keyword, so syntax is incorrect.
      3. Final Answer:

        trigger:\n branches:\n include:\n - main -> Option D
      4. Quick Check:

        Correct trigger syntax includes branches: include [OK]
      Hint: Use 'branches: include:' to trigger on specific branches [OK]
      Common Mistakes:
      • Using 'exclude' instead of 'include' to trigger
      • Confusing 'paths' with 'branches' in triggers
      • Omitting 'include' keyword causing syntax errors
      3. Given this YAML snippet in an Azure build pipeline, what will be the output of the script step?
      steps:
      - script: echo Hello, Azure DevOps!
        displayName: 'Print greeting'
      medium
      A. No output, script step is missing
      B. Hello, Azure DevOps!
      C. script: echo Hello, Azure DevOps!
      D. Print greeting

      Solution

      1. Step 1: Understand the script step in YAML

        The 'script' keyword runs the command given, here 'echo Hello, Azure DevOps!'.
      2. Step 2: Identify the output of the echo command

        The echo command prints the text 'Hello, Azure DevOps!' to the pipeline logs.
      3. Final Answer:

        Hello, Azure DevOps! -> Option B
      4. Quick Check:

        Script echo output = Hello, Azure DevOps! [OK]
      Hint: Script runs commands; echo prints text to output [OK]
      Common Mistakes:
      • Confusing displayName with output
      • Thinking script keyword prints itself
      • Assuming no output if displayName is set
      4. You wrote this YAML snippet for a build pipeline but it fails to trigger on the 'develop' branch:
      trigger:
        branches:
          include:
            - main
      steps:
      - script: echo Build started
      What is the likely cause?
      medium
      A. The trigger only includes the 'main' branch, not 'develop'
      B. The script step is missing a displayName
      C. The echo command is incorrect syntax
      D. The YAML indentation is invalid

      Solution

      1. Step 1: Analyze the trigger branches

        The trigger includes only the 'main' branch, so changes in 'develop' won't start the pipeline.
      2. Step 2: Check other parts for errors

        The script step is valid without displayName, echo syntax is correct, and indentation looks fine.
      3. Final Answer:

        The trigger only includes the 'main' branch, not 'develop' -> Option A
      4. Quick Check:

        Trigger branches must include target branch [OK]
      Hint: Check trigger branches include all needed branches [OK]
      Common Mistakes:
      • Assuming script needs displayName to run
      • Thinking echo command syntax causes trigger failure
      • Ignoring trigger branch filters
      5. You want to create a build pipeline that triggers only when files in the 'src/' folder change on the 'release' branch. Which YAML snippet correctly sets this up?
      hard
      A. trigger:\n branches:\n include:\n - release\n paths:\n include:\n - src/**
      B. trigger:\n branches:\n include:\n - release\n paths:\n exclude:\n - src/**
      C. trigger:\n branches:\n exclude:\n - release\n paths:\n include:\n - src/**
      D. trigger:\n branches:\n include:\n - main\n paths:\n include:\n - src/**

      Solution

      1. Step 1: Understand branch and path filters

        To trigger on 'release' branch and only when files in 'src/' change, include 'release' in branches and 'src/**' in paths.
      2. Step 2: Evaluate each option

        trigger:\n branches:\n include:\n - release\n paths:\n include:\n - src/** correctly includes 'release' branch and 'src/**' path. trigger:\n branches:\n include:\n - release\n paths:\n exclude:\n - src/** excludes 'src/**' so it won't trigger on those files. trigger:\n branches:\n exclude:\n - release\n paths:\n include:\n - src/** excludes 'release' branch, so no trigger on it. trigger:\n branches:\n include:\n - main\n paths:\n include:\n - src/** triggers on 'main' branch, not 'release'.
      3. Final Answer:

        trigger:\n branches:\n include:\n - release\n paths:\n include:\n - src/** -> Option A
      4. Quick Check:

        Include branch and path filters to trigger correctly [OK]
      Hint: Use both branches and paths include to filter triggers [OK]
      Common Mistakes:
      • Using exclude instead of include for paths
      • Triggering on wrong branch
      • Forgetting to specify paths filter