SynfraCore
Synfracore
Start Learning
Navigation

Academies

Platform

RoadmapsLabsCertificationsInterviewPYQsAI AssistantCareer
Start Learning Free🗺️ Learning Roadmaps

Azure DevOpsCheatsheets

Quick reference — commands, syntax, and patterns

✍️
Written by senior engineers. Reviewed for technical accuracy.· Updated 2025 · SynfraCore Azure DevOps Team
Expert Content

Azure DevOps — Cheatsheet

yaml
# ── BASIC PIPELINE STRUCTURE ─────────────────────────────
trigger: [main, release/*]
pr: [main]

variables:
  DOCKER_REGISTRY: myregistry.azurecr.io
  IMAGE_TAG: $(Build.BuildId)

pool:
  vmImage: ubuntu-latest   # or: windows-latest, macOS-latest

stages:
  - stage: Build
    jobs:
      - job: BuildAndTest
        steps:
          - checkout: self
          - task: NodeTool@0
            inputs: {versionSpec: '20.x'}
          - script: npm ci && npm test
          - task: Docker@2
            inputs:
              containerRegistry: ACR-ServiceConnection
              repository: myapp
              command: buildAndPush
              tags: $(IMAGE_TAG)

  - stage: Deploy
    dependsOn: Build
    condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
    jobs:
      - deployment: DeployProd
        environment: production       # Requires approval in Environments
        strategy:
          runOnce:
            deploy:
              steps:
                - task: HelmDeploy@0
                  inputs:
                    connectionType: Kubernetes Service Connection
                    kubernetesServiceEndpoint: aks-prod
                    command: upgrade
                    chartName: myapp
                    releaseName: myapp
                    overrideValues: image.tag=$(IMAGE_TAG)

# ── COMMON TASKS ──────────────────────────────────────────
# Publish test results
- task: PublishTestResults@2
  inputs: {testResultsFiles: '**/junit.xml'}

# Publish code coverage
- task: PublishCodeCoverageResults@1
  inputs: {codeCoverageTool: Cobertura, summaryFileLocation: coverage/cobertura-coverage.xml}

# Azure CLI
- task: AzureCLI@2
  inputs:
    azureSubscription: prod-service-connection
    scriptType: bash
    scriptLocation: inlineScript
    inlineScript: |
      az aks get-credentials --name prod-aks --resource-group prod-rg

# Copy files to artifact staging
- task: CopyFiles@2
  inputs: {Contents: '**/*.yaml', TargetFolder: $(Build.ArtifactStagingDirectory)}
- task: PublishBuildArtifacts@1
  inputs: {PathtoPublish: $(Build.ArtifactStagingDirectory), ArtifactName: manifests}

# ── BUILT-IN VARIABLES ────────────────────────────────────
# $(Build.BuildId)         — unique build number
# $(Build.BuildNumber)     — formatted build number
# $(Build.SourceBranch)    — refs/heads/main
# $(Build.SourceVersion)   — commit SHA
# $(System.TeamProject)    — project name
# $(Agent.BuildDirectory)  — agent working directory
# $(Build.ArtifactStagingDirectory) — artifact staging dir
Share:
Join our Community
Daily tips, job alerts, interview help — join engineers learning together
Up Next
📝
Azure DevOpsNotes
Key takeaways, tips, and important points to remember
Also Worth Exploring
← Back to all Azure DevOps modules
CertificationNotes