Domain 3 · 50–55%

Design and implement build and release pipelines

The heart of AZ-400 — more than half the exam. Six sub-objectives covering how software is packaged, tested, built, deployed, provisioned and kept healthy, across both Azure Pipelines and GitHub Actions.

Budget your study time here

At 50–55%, this domain is worth as much as the other four combined. If you are short on time, work through these six pages first and treat Domains 1, 2, 4 and 5 as revision. Within Domain 3, pipelines and deployments attract the most questions.

The six sub-objectives

How the pieces fit together

flowchart TB subgraph CI["Continuous integration"] S[Source commit / PR] --> B[Build] B --> T["Test
3.2 unit · integration · coverage"] T --> PK["Package
3.1 artifacts & feeds"] end subgraph CD["Continuous delivery"] PK --> G{"Gates & approvals
3.2 / 3.3"} G --> IAC["Provision infrastructure
3.5 Bicep / ARM"] IAC --> D["Deploy
3.4 blue-green · canary · ring"] D --> M["Monitor & feed back
Domain 5"] end M -.->|"health signals gate the next release"| G D -.->|"3.6 optimise, retain, maintain"| B
The six sub-objectives are stages of one pipeline, not six separate topics — questions frequently cross the boundaries.

One exam, two toolchains

Nearly every concept in this domain exists in both Azure Pipelines and GitHub Actions under different names. Learn the pairs — a large share of Domain 3 questions are really vocabulary questions.

ConceptAzure PipelinesGitHub Actions
Definition fileazure-pipelines.yml (anywhere in the repo).github/workflows/*.yml
Top-level unitPipeline → stages → jobs → stepsWorkflow → jobs → steps (no stages)
ComputeAgent (Microsoft-hosted or self-hosted), in a poolRunner (GitHub-hosted or self-hosted), in a runner group
Reusable unit of workTask (- task: X@1)Action (- uses: org/action@v1)
Reuse across pipelinesYAML templates, task groups (classic)Reusable workflows (workflow_call), composite actions
Shared configurationVariable groups (Library), optionally Key Vault-linkedOrg/repo/environment variables and secrets
Deployment target + gatingEnvironments → approvals & checksEnvironments → protection rules
Job orderingdependsOn + conditionneeds + if
Fan-out over a config setstrategy: matrix:strategy: matrix:
Build outputsPipeline artifacts (PublishPipelineArtifact@1)Artifacts (actions/upload-artifact)
Package registryAzure ArtifactsGitHub Packages / ghcr.io
Manual runRun pipeline (UI/CLI), parameters:workflow_dispatch: with inputs:
Secretless Azure authService connection with workload identity federationazure/login with OIDC

Caveat — stages exist only in Azure Pipelines

GitHub Actions has no stage construct. Multi-stage behaviour is expressed with jobs plus needs: and per-job environment:. If an answer option offers "add a stage" to a GitHub Actions workflow, it is wrong.

Choosing between them

Choose…When the scenario has…
GitHub ActionsCode already in GitHub; open-source project; team living in the GitHub ecosystem (Issues, Projects, Dependabot, Advanced Security); wanting the marketplace of community actions
Azure PipelinesAzure Repos, Bitbucket or TFVC as the source; a need for rich release management (stages, gates, deployment groups); existing classic pipelines; enterprise governance across many projects
Both togetherCode in GitHub, CD in Azure Pipelines — connect via the Azure Pipelines GitHub App so build status appears as a check on the PR

TFVC is the tiebreaker

GitHub Actions cannot build from Team Foundation Version Control. If a legacy TFVC repository appears anywhere in the scenario, the answer is Azure Pipelines.