Roadmap › Azure DevOps & CI/CD › Module: Azure Pipelines
Lessons in this course (10)
3. YAML pipeline structure
Basic★ Must knowLesson 3 of 10
yaml
# azure-pipelines.yml
trigger:
branches: { include: [main] }
paths: { exclude: [docs/*, README.md] }
pr:
branches: { include: [main] }
pool:
vmImage: ubuntu-latest
variables:
buildConfiguration: Release
dotnetVersion: 10.0.x
stages:
- stage: Build
jobs:
- job: BuildTest
steps:
- task: UseDotNet@2
inputs: { packageType: sdk, version: $(dotnetVersion) }
- script: dotnet restore
displayName: Restore
- script: dotnet build --no-restore -c $(buildConfiguration)
displayName: Build
- script: dotnet test --no-build -c $(buildConfiguration) --logger trx --collect:"XPlat Code Coverage"
displayName: Test
- task: PublishTestResults@2
condition: succeededOrFailed()
inputs: { testResultsFormat: VSTest, testResultsFiles: '**/*.trx' }
- script: dotnet publish src/Shop.Api -c $(buildConfiguration) -o $(Build.ArtifactStagingDirectory)/api
displayName: Publish
- publish: $(Build.ArtifactStagingDirectory)/api
artifact: apiHierarchy: Pipeline → Stages → Jobs → Steps (tasks or scripts). A job runs on one agent; jobs in a stage can run in parallel; stages run in order unless dependsOn says otherwise.