package azurepipelines import "struct" // Pipeline schema // // A pipeline definition #Pipeline: { @jsonschema(schema="http://json-schema.org/draft-07/schema#") @jsonschema(id="https://github.com/Microsoft/azure-pipelines-vscode/blob/main/service-schema.json") matchN(1, [#pipeline, =~"^$"]) #any: matchN(>=1, [string, [...#any], { ... }]) #any_allowExpressions: matchN(>=1, [string, [...#any], { ... }]) #boolean: matchN(>=1, [=~"^true$", =~"^y$", =~"^yes$", =~"^on$", =~"^false$", =~"^n$", =~"^no$", =~"^off$"]) // branch name or prefix filter #branchFilter: =~"^[^\\/~\\^\\: \\[\\]\\\\]+(\\/[^\\/~\\^\\: \\[\\]\\\\]+)*$" #branchFilterArray: [...#branchFilter] #buildResource: close({ "build"!: #referenceName "type"!: #nonEmptyString "connection"!: #nonEmptyString "source"!: #nonEmptyString "version"?: #string_allowExpressions "branch"?: #string_allowExpressions "trigger"?: #buildResourceTrigger }) #buildResourceTrigger: matchN(>=1, [=~"^none$", =~"^true$"]) #buildResources: [...#buildResource] #canaryDeploymentIncrements: [...#nonEmptyString] #canaryDeploymentStrategy: close({ "increments"?: #canaryDeploymentIncrements "preDeploy"?: #preDeployHook "deploy"?: #deployHook "routeTraffic"?: #routeTrafficHook "postRouteTraffic"?: #postRouteTrafficHook "on"?: #onSuccessOrFailureHook }) #check: close({ "type"?: #checkType }) // Production readiness check #checkType: =~"^productionReadinessPolicy$" #checks: [...#check] #containerArtifactType: matchN(>=1, [=~"^ACR$", string]) #containerBase: close({ "endpoint"?: #string_allowExpressions "env"?: #mappingOfStringString "image"!: #string "mapDockerSocket"?: #boolean "options"?: #string_allowExpressions "ports"?: #sequenceOfString_allowExpressions "volumes"?: #sequenceOfString_allowExpressions "mountReadOnly"?: #readOnlyMounts }) #containerResource: { "container"!: #referenceName "type"?: #containerArtifactType "trigger"?: #containerResourceTrigger "azureSubscription"?: #nonEmptyString "resourceGroup"?: #nonEmptyString "registry"?: #nonEmptyString "repository"?: #nonEmptyString "localImage"?: #boolean "endpoint"?: #string_allowExpressions "env"?: #mappingOfStringString "image"!: #string "mapDockerSocket"?: #boolean "options"?: #string_allowExpressions "ports"?: #sequenceOfString_allowExpressions "volumes"?: #sequenceOfString_allowExpressions "mountReadOnly"?: #readOnlyMounts ... } #containerResourceTrigger: matchN(>=1, [=~"^none$", =~"^true$", close({ "enabled"?: #boolean "tags"?: #includeExcludeStringFilters })]) #containerResources: [...#containerResource] #deployHook: close({ "steps"?: #steps "pool"?: #pool }) // Environment details #deploymentEnvironment: matchN(>=1, [string, close({ "name"?: #nonEmptyString "resourceName"?: #nonEmptyString "resourceId"?: #nonEmptyString "resourceType"?: #nonEmptyString "tags"?: #nonEmptyString })]) #deploymentStrategy: matchN(>=1, [close({ "runOnce"?: #runOnceDeploymentStrategy }), close({ "rolling"?: #rollingDeploymentStrategy }), close({ "canary"?: #canaryDeploymentStrategy })]) #explicitResources: close({ "repositories"?: #sequenceOfNonEmptyString "pools"?: #sequenceOfNonEmptyString }) #extends: close({ "template"?: #nonEmptyString "parameters"?: #mapping }) #extendsParameters: [...#templateParameter] #extendsTemplate: matchN(>=1, [close({ "stages"?: #stages "trigger"?: #trigger "resources"?: #resources "parameters"?: #extendsParameters "variables"?: #variables }), close({ "jobs"?: #jobs "trigger"?: #trigger "resources"?: #resources "parameters"?: #extendsParameters "variables"?: #variables }), close({ "steps"?: #steps "trigger"?: #trigger "resources"?: #resources "parameters"?: #extendsParameters "variables"?: #variables }), close({ "trigger"?: #trigger "resources"?: #resources "parameters"?: #extendsParameters "extends"?: #extends })]) #extendsTemplateBase: close({ "trigger"?: #trigger "resources"?: #resources "parameters"?: #extendsParameters "variables"?: #variables }) #includeExcludeFilters: close({ "include"?: #branchFilterArray "exclude"?: #branchFilterArray }) #includeExcludeStringFilters: matchN(>=1, [[...#nonEmptyString], close({ "include"?: #sequenceOfNonEmptyString "exclude"?: #sequenceOfNonEmptyString })]) #job: matchN(>=1, [close({ "job"?: #referenceName "displayName"?: #string "dependsOn"?: #jobDependsOn "condition"?: #string "continueOnError"?: #jobContinueOnError "timeoutInMinutes"?: #nonEmptyString "cancelTimeoutInMinutes"?: #nonEmptyString "variables"?: #variables "strategy"?: #jobStrategy "pool"?: #pool "container"?: #jobContainer "services"?: #jobServices "workspace"?: #jobWorkspace "uses"?: #explicitResources "steps"?: #steps "templateContext"?: #templateContext }), close({ "deployment"?: #string "displayName"?: #string "dependsOn"?: #jobDependsOn "condition"?: #string "continueOnError"?: #jobContinueOnError "timeoutInMinutes"?: #nonEmptyString "cancelTimeoutInMinutes"?: #nonEmptyString "variables"?: #variables "pool"?: #pool "environment"?: #deploymentEnvironment "strategy"?: #deploymentStrategy "workspace"?: #jobWorkspace "uses"?: #explicitResources "container"?: #jobContainer "services"?: #jobServices "templateContext"?: #templateContext }), close({ "template"?: #nonEmptyString "parameters"?: #mapping })]) #jobContainer: matchN(>=1, [string, close({ "alias"?: #string }), { "endpoint"?: #string_allowExpressions "env"?: #mappingOfStringString "image"!: #string "mapDockerSocket"?: #boolean "options"?: #string_allowExpressions "ports"?: #sequenceOfString_allowExpressions "volumes"?: #sequenceOfString_allowExpressions "mountReadOnly"?: #readOnlyMounts ... }]) #jobContinueOnError: string #jobDecoratorSteps: close({ "steps"?: #tasks }) #jobDependsOn: matchN(>=1, [string, [...#string]]) #jobMatrix: matchN(>=1, [struct.MinFields(1) & { {[=~"^[A-Za-z0-9_]+$"]: #matrixProperties} ... }, string]) #jobServices: { ... } #jobStrategy: matchN(>=1, [close({ "matrix"?: #jobMatrix "maxParallel"?: #nonEmptyString }), close({ "parallel"?: #nonEmptyString })]) #jobWorkspace: close({ "clean"?: #string }) #jobs: [...#job] #jobsTemplate: matchN(>=1, [close({ "parameters"?: #templateParameters "jobs"?: #jobs }), close({ "parameters"?: #templateParameters "phases"?: #phases })]) #legacyRepoResourceAlias: =~"^self$" #legacyResource: close({ "repo"?: #legacyRepoResourceAlias "clean"?: #string "fetchDepth"?: #string "lfs"?: #string }) #lockBehavior: matchN(>=1, [=~"^sequential$", =~"^runLatest$"]) #mapping: { ... } #mappingOfStringString: { ... } // Variable-value pair to pass in this matrix instance #matrixProperties: { ... } #nonEmptyString: string #onFailureHook: close({ "steps"?: #steps "pool"?: #pool }) #onSuccessHook: close({ "steps"?: #steps "pool"?: #pool }) #onSuccessOrFailureHook: close({ "failure"?: #onFailureHook "success"?: #onSuccessHook }) #packageResource: close({ "package"!: #referenceName "type"!: #nonEmptyString "connection"!: #nonEmptyString "name"!: #nonEmptyString "version"?: #string_allowExpressions "tag"?: #string_allowExpressions "trigger"?: #packageResourceTrigger }) #packageResourceTrigger: matchN(>=1, [=~"^none$", =~"^true$"]) #packageResources: [...#packageResource] #parametersTemplate: matchN(>=1, [close({ "parameters"?: #templateParameters "steps"!: #steps }), close({ "parameters"?: #templateParameters "jobs"?: #jobs }), close({ "parameters"?: #templateParameters "stages"?: #stages }), close({ "resources"?: #resources "parameters"?: #templateParameters "extends"!: #extends })]) #phase: matchN(>=1, [close({ "phase"?: #referenceName "dependsOn"?: #jobDependsOn "displayName"?: #string "condition"?: #string "continueOnError"?: #jobContinueOnError "queue"?: #phaseQueueTarget "variables"?: #variables "steps"?: #steps }), close({ "phase"?: #referenceName "dependsOn"?: #jobDependsOn "displayName"?: #string "condition"?: #string "continueOnError"?: #jobContinueOnError "server"?: #phaseServerTarget "variables"?: #variables "steps"?: #steps }), close({ "template"?: #nonEmptyString "parameters"?: #mapping })]) // Queue details #phaseQueueTarget: matchN(>=1, [string, close({ "cancelTimeoutInMinutes"?: #nonEmptyString "container"?: #nonEmptyString "demands"?: #phaseTargetDemands "matrix"?: #phaseTargetMatrix "name"?: #string "parallel"?: #nonEmptyString "timeoutInMinutes"?: #nonEmptyString "workspace"?: #phaseTargetWorkspace })]) #phaseServerTarget: matchN(>=1, [string, close({ "cancelTimeoutInMinutes"?: #nonEmptyString "matrix"?: #phaseTargetMatrix "parallel"?: #nonEmptyString "timeoutInMinutes"?: #nonEmptyString })]) #phaseTargetDemands: matchN(>=1, [string, [...#nonEmptyString]]) // List of permutations of variable values to run #phaseTargetMatrix: matchN(>=1, [{ ... }, string]) & (string | struct.MinFields(1) & { {[=~"^[A-Za-z0-9_]+$"]: #matrixProperties} ... }) #phaseTargetWorkspace: close({ "clean"?: #string }) #phases: [...#phase] #pipeline: matchN(>=1, [close({ "stages"!: #stages "pool"?: #pool "name"?: #string_allowExpressions "appendCommitMessageToRunName"?: #boolean "trigger"?: #trigger "parameters"?: #pipelineTemplateParameters "pr"?: #pr "schedules"?: #schedules "resources"?: #resources "variables"?: #variables "lockBehavior"?: #lockBehavior }), close({ "extends"!: #extends "pool"?: #pool "name"?: #string_allowExpressions "appendCommitMessageToRunName"?: #boolean "trigger"?: #trigger "parameters"?: #pipelineTemplateParameters "pr"?: #pr "schedules"?: #schedules "resources"?: #resources "variables"?: #variables "lockBehavior"?: #lockBehavior }), close({ "jobs"!: #jobs "pool"?: #pool "name"?: #string_allowExpressions "appendCommitMessageToRunName"?: #boolean "trigger"?: #trigger "parameters"?: #pipelineTemplateParameters "pr"?: #pr "schedules"?: #schedules "resources"?: #resources "variables"?: #variables "lockBehavior"?: #lockBehavior }), close({ "phases"!: #phases "name"?: #string_allowExpressions "appendCommitMessageToRunName"?: #boolean "trigger"?: #trigger "parameters"?: #pipelineTemplateParameters "pr"?: #pr "schedules"?: #schedules "resources"?: #resources "variables"?: #variables "lockBehavior"?: #lockBehavior }), close({ "strategy"?: #jobStrategy "continueOnError"?: #jobContinueOnError "pool"?: #pool "container"?: #jobContainer "services"?: #jobServices "workspace"?: #jobWorkspace "steps"!: #steps "name"?: #string_allowExpressions "appendCommitMessageToRunName"?: #boolean "trigger"?: #trigger "parameters"?: #pipelineTemplateParameters "pr"?: #pr "schedules"?: #schedules "resources"?: #resources "variables"?: #variables "lockBehavior"?: #lockBehavior }), close({ "continueOnError"?: #jobContinueOnError "queue"?: #phaseQueueTarget "steps"!: #steps "name"?: #string_allowExpressions "appendCommitMessageToRunName"?: #boolean "trigger"?: #trigger "parameters"?: #pipelineTemplateParameters "pr"?: #pr "schedules"?: #schedules "resources"?: #resources "variables"?: #variables "lockBehavior"?: #lockBehavior }), close({ "continueOnError"?: #jobContinueOnError "server"?: #phaseServerTarget "steps"!: #steps "name"?: #string_allowExpressions "appendCommitMessageToRunName"?: #boolean "trigger"?: #trigger "parameters"?: #pipelineTemplateParameters "pr"?: #pr "schedules"?: #schedules "resources"?: #resources "variables"?: #variables "lockBehavior"?: #lockBehavior })]) #pipelineAnyBase: close({ "name"?: #any_allowExpressions "appendCommitMessageToRunName"?: #any_allowExpressions "trigger"?: #any_allowExpressions "parameters"?: #any_allowExpressions "pr"?: #any_allowExpressions "schedules"?: #any_allowExpressions "resources"?: #any_allowExpressions "variables"?: #any_allowExpressions "stages"?: #any_allowExpressions "jobs"?: #any_allowExpressions "extends"?: #any_allowExpressions "phases"?: #any_allowExpressions "strategy"?: #any_allowExpressions "continueOnError"?: #any_allowExpressions "pool"?: #any_allowExpressions "container"?: #any_allowExpressions "services"?: #any_allowExpressions "workspace"?: #any_allowExpressions "steps"?: #any_allowExpressions "queue"?: #any_allowExpressions "server"?: #any_allowExpressions "lockBehavior"?: #lockBehavior }) #pipelineBase: close({ "name"?: #string_allowExpressions "appendCommitMessageToRunName"?: #boolean "trigger"?: #trigger "parameters"?: #pipelineTemplateParameters "pr"?: #pr "schedules"?: #schedules "resources"?: #resources "variables"?: #variables "lockBehavior"?: #lockBehavior }) #pipelinePR: close({ "pr"?: #pr "name"?: #any_allowExpressions "appendCommitMessageToRunName"?: #any_allowExpressions "trigger"?: #any_allowExpressions "parameters"?: #any_allowExpressions "schedules"?: #any_allowExpressions "resources"?: #any_allowExpressions "variables"?: #any_allowExpressions "stages"?: #any_allowExpressions "jobs"?: #any_allowExpressions "extends"?: #any_allowExpressions "phases"?: #any_allowExpressions "strategy"?: #any_allowExpressions "continueOnError"?: #any_allowExpressions "pool"?: #any_allowExpressions "container"?: #any_allowExpressions "services"?: #any_allowExpressions "workspace"?: #any_allowExpressions "steps"?: #any_allowExpressions "queue"?: #any_allowExpressions "server"?: #any_allowExpressions "lockBehavior"?: #lockBehavior }) #pipelineParameters: close({ "parameters"?: #pipelineTemplateParameters "name"?: #any_allowExpressions "appendCommitMessageToRunName"?: #any_allowExpressions "trigger"?: #any_allowExpressions "pr"?: #any_allowExpressions "schedules"?: #any_allowExpressions "resources"?: #any_allowExpressions "variables"?: #any_allowExpressions "stages"?: #any_allowExpressions "jobs"?: #any_allowExpressions "extends"?: #any_allowExpressions "phases"?: #any_allowExpressions "strategy"?: #any_allowExpressions "continueOnError"?: #any_allowExpressions "pool"?: #any_allowExpressions "container"?: #any_allowExpressions "services"?: #any_allowExpressions "workspace"?: #any_allowExpressions "steps"?: #any_allowExpressions "queue"?: #any_allowExpressions "server"?: #any_allowExpressions "lockBehavior"?: #lockBehavior }) #pipelineResource: close({ "pipeline"!: #referenceName "project"?: #nonEmptyString "source"?: #nonEmptyString "version"?: #string_allowExpressions "branch"?: #string_allowExpressions "tags"?: #sequenceOfNonEmptyString "trigger"?: #pipelineResourceTrigger }) #pipelineResourceTrigger: matchN(>=1, [=~"^none$", =~"^true$", close({ "enabled"?: #boolean "branches"?: #triggerBranchFilter "stages"?: #sequenceOfNonEmptyString "tags"?: #sequenceOfNonEmptyString })]) #pipelineResources: [...#pipelineResource] #pipelineSchedules: close({ "schedules"?: #schedules "name"?: #any_allowExpressions "appendCommitMessageToRunName"?: #any_allowExpressions "trigger"?: #any_allowExpressions "parameters"?: #any_allowExpressions "pr"?: #any_allowExpressions "resources"?: #any_allowExpressions "variables"?: #any_allowExpressions "stages"?: #any_allowExpressions "jobs"?: #any_allowExpressions "extends"?: #any_allowExpressions "phases"?: #any_allowExpressions "strategy"?: #any_allowExpressions "continueOnError"?: #any_allowExpressions "pool"?: #any_allowExpressions "container"?: #any_allowExpressions "services"?: #any_allowExpressions "workspace"?: #any_allowExpressions "steps"?: #any_allowExpressions "queue"?: #any_allowExpressions "server"?: #any_allowExpressions "lockBehavior"?: #lockBehavior }) #pipelineTemplateParameter: close({ "name"?: #nonEmptyString "displayName"?: #string "type"?: #pipelineTemplateParameterType "default"?: #any "values"?: #sequenceOfNonEmptyString }) #pipelineTemplateParameterType: matchN(>=1, [=~"^boolean$", =~"^container$", =~"^containerList$", =~"^deployment$", =~"^deploymentList$", =~"^environment$", =~"^filePath$", =~"^job$", =~"^jobList$", =~"^number$", =~"^object$", =~"^pool$", =~"^secureFile$", =~"^serviceConnection$", =~"^stage$", =~"^stageList$", =~"^step$", =~"^stepList$", =~"^string$", =~"^stringList$"]) #pipelineTemplateParameters: [...#pipelineTemplateParameter] #pipelineTrigger: close({ "trigger"?: #trigger "name"?: #any_allowExpressions "appendCommitMessageToRunName"?: #any_allowExpressions "parameters"?: #any_allowExpressions "pr"?: #any_allowExpressions "schedules"?: #any_allowExpressions "resources"?: #any_allowExpressions "variables"?: #any_allowExpressions "stages"?: #any_allowExpressions "jobs"?: #any_allowExpressions "extends"?: #any_allowExpressions "phases"?: #any_allowExpressions "strategy"?: #any_allowExpressions "continueOnError"?: #any_allowExpressions "pool"?: #any_allowExpressions "container"?: #any_allowExpressions "services"?: #any_allowExpressions "workspace"?: #any_allowExpressions "steps"?: #any_allowExpressions "queue"?: #any_allowExpressions "server"?: #any_allowExpressions "lockBehavior"?: #lockBehavior }) // Pool details #pool: matchN(>=1, [string, { "name"?: #nonEmptyString "demands"?: #poolDemands "vmImage"?: #nonEmptyString ... }]) #poolDemands: matchN(>=1, [string, [...#nonEmptyString]]) #postRouteTrafficHook: close({ "steps"?: #steps "pool"?: #pool }) #pr: matchN(>=1, [=~"^none$", [...#branchFilter], close({ "autoCancel"?: #boolean "branches"?: #includeExcludeFilters "paths"?: #includeExcludeFilters "drafts"?: #boolean })]) #preDeployHook: close({ "steps"?: #steps "pool"?: #pool }) #readOnlyMounts: close({ "work"?: #boolean "externals"?: #boolean "tools"?: #boolean "tasks"?: #boolean }) #referenceName: =~"^[-_A-Za-z0-9]*$" #repositoryCheckoutOptions: close({ "clean"?: #string "fetchDepth"?: #string "fetchTags"?: #string "lfs"?: #string "submodules"?: #string "persistCredentials"?: #string }) #repositoryResource: { "repository"!: #referenceName "endpoint"?: #nonEmptyString "trigger"?: #trigger "checkoutOptions"?: #repositoryCheckoutOptions "name"?: #nonEmptyString "ref"?: #string_allowExpressions "type"?: #string ... } #repositoryResources: [...#repositoryResource] #resources: matchN(>=1, [close({ "builds"?: #buildResources "containers"?: #containerResources "pipelines"?: #pipelineResources "repositories"?: #repositoryResources "webhooks"?: #webhookResources "packages"?: #packageResources }), [...#legacyResource]]) #rollingDeploymentStrategy: close({ "maxParallel"?: #nonEmptyString "preDeploy"?: #preDeployHook "deploy"?: #deployHook "routeTraffic"?: #routeTrafficHook "postRouteTraffic"?: #postRouteTrafficHook "on"?: #onSuccessOrFailureHook }) #routeTrafficHook: close({ "steps"?: #steps "pool"?: #pool }) #runOnceDeploymentStrategy: close({ "preDeploy"?: #preDeployHook "deploy"?: #deployHook "routeTraffic"?: #routeTrafficHook "postRouteTraffic"?: #postRouteTrafficHook "on"?: #onSuccessOrFailureHook }) #schedule: close({ "cron"?: #nonEmptyString "displayName"?: #string "branches"?: #includeExcludeFilters "batch"?: #boolean "always"?: #boolean }) #schedules: [...#schedule] #sequence: [...#any] #sequenceOfNonEmptyString: [...#nonEmptyString] #sequenceOfString_allowExpressions: [...#string_allowExpressions] #stage: matchN(>=1, [close({ "stage"?: #string "group"?: #string "displayName"?: #string "pool"?: #pool "dependsOn"?: #jobDependsOn "condition"?: #string "variables"?: #variables "jobs"?: #jobs "lockBehavior"?: #lockBehavior "trigger"?: #stageTrigger "isSkippable"?: #boolean "templateContext"?: #templateContext "checks"?: #checks }), close({ "template"?: #nonEmptyString "parameters"?: #mapping })]) #stageTrigger: matchN(>=1, [=~"^manual$", =~"^automatic$"]) #stages: [...#stage] #stagesTemplate: close({ "parameters"?: #templateParameters "stages"?: #stages }) #step: matchN(>=1, [#task, close({ "script"!: #string "failOnStderr"?: #string "workingDirectory"?: #string "condition"?: #string "continueOnError"?: #boolean "displayName"?: #string "target"?: #stepTarget "enabled"?: #boolean "env"?: #mappingOfStringString "name"?: #referenceName "timeoutInMinutes"?: #nonEmptyString "retryCountOnTaskFailure"?: #string }), close({ "powershell"!: #string "errorActionPreference"?: #string "failOnStderr"?: #string "ignoreLASTEXITCODE"?: #string "workingDirectory"?: #string "condition"?: #string "continueOnError"?: #boolean "displayName"?: #string "target"?: #stepTarget "enabled"?: #boolean "env"?: #mappingOfStringString "name"?: #referenceName "timeoutInMinutes"?: #nonEmptyString "retryCountOnTaskFailure"?: #string }), close({ "pwsh"!: #string "errorActionPreference"?: #string "failOnStderr"?: #string "ignoreLASTEXITCODE"?: #string "workingDirectory"?: #string "condition"?: #string "continueOnError"?: #boolean "displayName"?: #string "target"?: #stepTarget "enabled"?: #boolean "env"?: #mappingOfStringString "name"?: #referenceName "timeoutInMinutes"?: #nonEmptyString "retryCountOnTaskFailure"?: #string }), close({ "bash"!: #string "failOnStderr"?: #string "workingDirectory"?: #string "condition"?: #string "continueOnError"?: #boolean "displayName"?: #string "target"?: #stepTarget "enabled"?: #boolean "env"?: #mappingOfStringString "name"?: #referenceName "timeoutInMinutes"?: #nonEmptyString "retryCountOnTaskFailure"?: #string }), close({ "checkout"?: #string "clean"?: #string "fetchDepth"?: #string "fetchFilter"?: #string "fetchTags"?: #string "lfs"?: #string "persistCredentials"?: #string "submodules"?: #string "path"?: #string "sparseCheckoutDirectories"?: #string "sparseCheckoutPatterns"?: #string "workspaceRepo"?: #string "condition"?: #string "continueOnError"?: #boolean "displayName"?: #string "target"?: #stepTarget "enabled"?: #boolean "env"?: #mappingOfStringString "name"?: #referenceName "timeoutInMinutes"?: #nonEmptyString "retryCountOnTaskFailure"?: #string }), close({ "download"!: #nonEmptyString "artifact"?: #nonEmptyString "patterns"?: #nonEmptyString "condition"?: #string "continueOnError"?: #boolean "displayName"?: #string "target"?: #stepTarget "enabled"?: #boolean "env"?: #mappingOfStringString "name"?: #referenceName "timeoutInMinutes"?: #nonEmptyString "retryCountOnTaskFailure"?: #string }), close({ "downloadBuild"?: #nonEmptyString "artifact"?: #string "path"?: #string "patterns"?: #string "inputs"?: #mappingOfStringString "condition"?: #string "continueOnError"?: #boolean "displayName"?: #string "target"?: #stepTarget "enabled"?: #boolean "env"?: #mappingOfStringString "name"?: #referenceName "timeoutInMinutes"?: #nonEmptyString "retryCountOnTaskFailure"?: #string }), close({ "getPackage"?: #nonEmptyString "path"?: #string "condition"?: #string "continueOnError"?: #boolean "displayName"?: #string "target"?: #stepTarget "enabled"?: #boolean "env"?: #mappingOfStringString "name"?: #referenceName "timeoutInMinutes"?: #nonEmptyString "retryCountOnTaskFailure"?: #string }), close({ "upload"?: #string "artifact"?: #string "condition"?: #string "continueOnError"?: #boolean "displayName"?: #string "target"?: #stepTarget "enabled"?: #boolean "env"?: #mappingOfStringString "name"?: #referenceName "timeoutInMinutes"?: #nonEmptyString "retryCountOnTaskFailure"?: #string }), close({ "publish"?: #string "artifact"?: #string "condition"?: #string "continueOnError"?: #boolean "displayName"?: #string "target"?: #stepTarget "enabled"?: #boolean "env"?: #mappingOfStringString "name"?: #referenceName "timeoutInMinutes"?: #nonEmptyString "retryCountOnTaskFailure"?: #string }), close({ "template"?: #nonEmptyString "parameters"?: #mapping }), close({ "reviewApp"?: #string "condition"?: #string "continueOnError"?: #boolean "displayName"?: #string "target"?: #stepTarget "enabled"?: #boolean "env"?: #mappingOfStringString "name"?: #referenceName "timeoutInMinutes"?: #nonEmptyString "retryCountOnTaskFailure"?: #string })]) // Step target #stepTarget: matchN(>=1, [string, close({ "container"?: #nonEmptyString "commands"?: #string "settableVariables"?: #variableRestrictions })]) #steps: [...#step] #stepsTemplate: close({ "parameters"?: #templateParameters "steps"?: #steps }) #string: string #string_allowExpressions: string #task: matchN(>=1, [{ // PowerShell // // Run a PowerShell script on Linux, macOS, or Windows "task"!: null | bool | number | =~"^PowerShell@2$" | [...] | { ... } // PowerShell inputs "inputs"?: null | bool | number | string | [...] | close({ // Type "targetType"?: "filePath" | "inline" // Script Path "filePath"?: string // Arguments "arguments"?: string // Script "script"?: string // ErrorActionPreference "errorActionPreference"?: "default" | "stop" | "continue" | "silentlyContinue" // WarningPreference "warningPreference"?: "default" | "stop" | "continue" | "silentlyContinue" // InformationPreference "informationPreference"?: "default" | "stop" | "continue" | "silentlyContinue" // VerbosePreference "verbosePreference"?: "default" | "stop" | "continue" | "silentlyContinue" // DebugPreference "debugPreference"?: "default" | "stop" | "continue" | "silentlyContinue" // ProgressPreference "progressPreference"?: "default" | "stop" | "continue" | "silentlyContinue" // Fail on Standard Error "failOnStderr"?: bool // Show warnings as Azure DevOps warnings "showWarnings"?: bool // Ignore $LASTEXITCODE "ignoreLASTEXITCODE"?: bool // Use PowerShell Core "pwsh"?: bool // Working Directory "workingDirectory"?: string // Run script in the separate scope "runScriptInSeparateScope"?: bool }) ... }, { // PowerShell // // Run a PowerShell script "task"!: null | bool | number | =~"^PowerShell@1$" | [...] | { ... } // PowerShell inputs "inputs"?: null | bool | number | string | [...] | close({ // Type "scriptType"?: "inlineScript" | "filePath" // Script Path "scriptName"?: string // Arguments "arguments"?: string // Working folder "workingFolder"?: string // Inline Script "inlineScript"?: string // Fail on Standard Error "failOnStandardError"?: bool }) ... }, { // Azure PowerShell // // Run a PowerShell script within an Azure environment "task"!: null | bool | number | =~"^AzurePowerShell@5$" | [...] | { ... } // Azure PowerShell inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure Subscription "azureSubscription"!: string // Script Type "ScriptType"?: "FilePath" | "InlineScript" // Script Path "ScriptPath"?: string // Inline Script "Inline"?: string // Script Arguments "ScriptArguments"?: string // ErrorActionPreference "errorActionPreference"?: "stop" | "continue" | "silentlyContinue" // Fail on Standard Error "FailOnStandardError"?: bool // Azure PowerShell Version "azurePowerShellVersion"?: "LatestVersion" | "OtherVersion" // Preferred Azure PowerShell Version "preferredAzurePowerShellVersion"?: string // Use PowerShell Core "pwsh"?: bool // Validate script signature "validateScriptSignature"?: bool // Working Directory "workingDirectory"?: string }) ... }, { // Azure PowerShell // // Run a PowerShell script within an Azure environment "task"!: null | bool | number | =~"^AzurePowerShell@4$" | [...] | { ... } // Azure PowerShell inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure Subscription "azureSubscription"!: string // Script Type "ScriptType"?: "FilePath" | "InlineScript" // Script Path "ScriptPath"?: string // Inline Script "Inline"?: string // Script Arguments "ScriptArguments"?: string // ErrorActionPreference "errorActionPreference"?: "stop" | "continue" | "silentlyContinue" // Fail on Standard Error "FailOnStandardError"?: bool // Restrict scope of context to current task "RestrictContextToCurrentTask"?: bool // Azure PowerShell Version "azurePowerShellVersion"?: "LatestVersion" | "OtherVersion" // Preferred Azure PowerShell Version "preferredAzurePowerShellVersion"?: string // Use PowerShell Core "pwsh"?: bool // Validate script signature "validateScriptSignature"?: bool // Working Directory "workingDirectory"?: string }) ... }, { // Azure PowerShell // // Run a PowerShell script within an Azure environment "task"!: null | bool | number | =~"^AzurePowerShell@1$" | [...] | { ... } // Azure PowerShell inputs "inputs"?: null | bool | number | string | [...] | close({ // Azure Connection Type "ConnectedServiceNameSelector"?: "ConnectedServiceName" | "ConnectedServiceNameARM" // Azure Classic Subscription "ConnectedServiceName"?: string // Azure Subscription "ConnectedServiceNameARM"?: string // Script Type "ScriptType"?: "FilePath" | "InlineScript" // Script Path "ScriptPath"?: string // Inline Script "Inline"?: string // Script Arguments "ScriptArguments"?: string }) ... }, { // Azure PowerShell // // Run a PowerShell script within an Azure environment "task"!: null | bool | number | =~"^AzurePowerShell@2$" | [...] | { ... } // Azure PowerShell inputs "inputs"?: null | bool | number | string | [...] | close({ // Azure Connection Type "azureConnectionType"?: "ConnectedServiceName" | "ConnectedServiceNameARM" // Azure Classic Subscription "azureClassicSubscription"?: string // Azure Subscription "azureSubscription"?: string // Script Type "ScriptType"?: "FilePath" | "InlineScript" // Script Path "ScriptPath"?: string // Inline Script "Inline"?: string // Script Arguments "ScriptArguments"?: string // Azure PowerShell Version "azurePowerShellVersion"?: "LatestVersion" | "OtherVersion" // Preferred Azure PowerShell Version "preferredAzurePowerShellVersion"?: string }) ... }, { // Azure PowerShell // // Run a PowerShell script within an Azure environment "task"!: null | bool | number | =~"^AzurePowerShell@3$" | [...] | { ... } // Azure PowerShell inputs "inputs"?: null | bool | number | string | [...] | close({ // Azure Connection Type "azureConnectionType"?: "ConnectedServiceName" | "ConnectedServiceNameARM" // Azure Classic Subscription "azureClassicSubscription"?: string // Azure Subscription "azureSubscription"?: string // Script Type "ScriptType"?: "FilePath" | "InlineScript" // Script Path "ScriptPath"?: string // Inline Script "Inline"?: string // Script Arguments "ScriptArguments"?: string // ErrorActionPreference "errorActionPreference"?: "stop" | "continue" | "silentlyContinue" // Fail on Standard Error "FailOnStandardError"?: bool // Azure PowerShell Version "azurePowerShellVersion"?: "LatestVersion" | "OtherVersion" // Preferred Azure PowerShell Version "preferredAzurePowerShellVersion"?: string // Validate script signature "validateScriptSignature"?: bool }) ... }, { // MySQL database deploy // // Run scripts and make changes to a MySQL Database "task"!: null | bool | number | =~"^MysqlDeploymentOnMachineGroup@1$" | [...] | { ... } // MySQL database deploy inputs "inputs"!: null | bool | number | string | [...] | close({ // Deploy MySql Using "TaskNameSelector"?: "SqlTaskFile" | "InlineSqlTask" // MySQL Script "SqlFile"?: string // Inline MySQL Script "SqlInline"?: string // Host Name "ServerName"?: string // Database Name "DatabaseName"?: string // MySQL User Name "SqlUsername"!: string // Password "SqlPassword"!: string // Additional Arguments "SqlAdditionalArguments"?: string }) ... }, { // Python pip authenticate // // Authentication task for the pip client used for installing // Python distributions "task"!: null | bool | number | =~"^PipAuthenticate@1$" | [...] | { ... } // Python pip authenticate inputs "inputs"?: null | bool | number | string | [...] | close({ // 'Azure DevOps' Service Connection "azureDevOpsServiceConnection"?: string // Azure Artifacts Feeds url. "feedUrl"?: string // My feeds (select below) "artifactFeeds"?: string // Feeds from external organizations "pythonDownloadServiceConnections"?: string // Don't set primary index URL "onlyAddExtraIndex"?: bool }) ... }, { // Python pip authenticate // // Authentication task for the pip client used for installing // Python distributions "task"!: null | bool | number | =~"^PipAuthenticate@0$" | [...] | { ... } // Python pip authenticate inputs "inputs"?: null | bool | number | string | [...] | close({ // My feeds (select below) "artifactFeeds"?: string // Feeds from external organizations "externalFeeds"?: string }) ... }, { // Maven // // Build, test, and deploy with Apache Maven "task"!: null | bool | number | =~"^Maven@4$" | [...] | { ... } // Maven inputs "inputs"?: null | bool | number | string | [...] | close({ // Azure Resource Manager connection "azureSubscription"?: string // Maven POM file "mavenPomFile"?: string // Goal(s) "goals"?: string // Options "options"?: string // Publish to Azure Pipelines "publishJUnitResults"?: bool // Test results files "testResultsFiles"?: string // Test run title "testRunTitle"?: string // Allow broken symbolic links "allowBrokenSymlinks"?: bool // Code coverage tool "codeCoverageToolOption"?: "None" | "Cobertura" | "JaCoCo" // Class inclusion/exclusion filters "codeCoverageClassFilter"?: string // Class files directories "codeCoverageClassFilesDirectories"?: string // Source files directories "codeCoverageSourceDirectories"?: string // Fail when code coverage results are missing "codeCoverageFailIfEmpty"?: bool // Restore original pom.xml after task execution "codeCoverageRestoreOriginalPomXml"?: bool // Set JAVA_HOME by "javaHomeOption"?: "JDKVersion" | "Path" // JDK version "jdkVersionOption"?: "default" | "1.21" | "1.17" | "1.11" | "1.10" | "1.9" | "1.8" | "1.7" | "1.6" // JDK path "jdkDirectory"?: string // JDK architecture "jdkArchitectureOption"?: "x86" | "x64" // Maven version "mavenVersionOption"?: "Default" | "Path" // Maven path "mavenDirectory"?: string // Set M2_HOME variable "mavenSetM2Home"?: bool // Set MAVEN_OPTS to "mavenOptions"?: string // Authenticate with Artifacts feeds "mavenAuthenticateFeed"?: bool // Skip generating effective POM while authenticating with // Artifacts feeds "effectivePomSkip"?: bool // Run SonarQube or SonarCloud analysis "sonarQubeRunAnalysis"?: bool // Use XML Jacoco reports for SonarQube analysis "isJacocoCoverageReportXML"?: bool // SonarQube scanner for Maven version "sqMavenPluginVersionChoice"?: "latest" | "pom" // Run Checkstyle "checkStyleRunAnalysis"?: bool // Run PMD "pmdRunAnalysis"?: bool // Run FindBugs "findBugsRunAnalysis"?: bool // Run SpotBugs analysis "spotBugsRunAnalysis"?: bool // Version number "spotBugsVersion"?: string // The goal for the spotbugs plugin "spotBugsGoal"?: "spotbugs" | "check" // Fail when bugs are found with spotbugs:check "failWhenBugsFound"?: bool }) ... }, { // Maven // // Build, test, and deploy with Apache Maven "task"!: null | bool | number | =~"^Maven@2$" | [...] | { ... } // Maven inputs "inputs"?: null | bool | number | string | [...] | close({ // Maven POM file "mavenPomFile"?: string // Goal(s) "goals"?: string // Options "options"?: string // Publish to Azure Pipelines "publishJUnitResults"?: bool // Test results files "testResultsFiles"?: string // Test run title "testRunTitle"?: string // Allow broken symbolic links "allowBrokenSymlinks"?: bool // Code coverage tool "codeCoverageToolOption"?: "None" | "Cobertura" | "JaCoCo" // Class inclusion/exclusion filters "codeCoverageClassFilter"?: string // Class files directories "codeCoverageClassFilesDirectories"?: string // Source files directories "codeCoverageSourceDirectories"?: string // Fail when code coverage results are missing "codeCoverageFailIfEmpty"?: bool // Restore original pom.xml after task execution "codeCoverageRestoreOriginalPomXml"?: bool // Set JAVA_HOME by "javaHomeOption"?: "JDKVersion" | "Path" // JDK version "jdkVersionOption"?: "default" | "1.21" | "1.17" | "1.11" | "1.10" | "1.9" | "1.8" | "1.7" | "1.6" // JDK path "jdkDirectory"?: string // JDK architecture "jdkArchitectureOption"?: "x86" | "x64" // Maven version "mavenVersionOption"?: "Default" | "Path" // Maven path "mavenDirectory"?: string // Set M2_HOME variable "mavenSetM2Home"?: bool // Set MAVEN_OPTS to "mavenOptions"?: string // Authenticate with Artifacts feeds "mavenAuthenticateFeed"?: bool // Run SonarQube or SonarCloud analysis "sonarQubeRunAnalysis"?: bool // Use XML Jacoco reports for SonarQube analysis "isJacocoCoverageReportXML"?: bool // SonarQube scanner for Maven version "sqMavenPluginVersionChoice"?: "latest" | "pom" // Run Checkstyle "checkStyleRunAnalysis"?: bool // Run PMD "pmdRunAnalysis"?: bool // Run FindBugs "findBugsRunAnalysis"?: bool }) ... }, { // Maven // // Build, test, and deploy with Apache Maven "task"!: null | bool | number | =~"^Maven@3$" | [...] | { ... } // Maven inputs "inputs"?: null | bool | number | string | [...] | close({ // Maven POM file "mavenPomFile"?: string // Goal(s) "goals"?: string // Options "options"?: string // Publish to Azure Pipelines "publishJUnitResults"?: bool // Test results files "testResultsFiles"?: string // Test run title "testRunTitle"?: string // Allow broken symbolic links "allowBrokenSymlinks"?: bool // Code coverage tool "codeCoverageToolOption"?: "None" | "Cobertura" | "JaCoCo" // Class inclusion/exclusion filters "codeCoverageClassFilter"?: string // Class files directories "codeCoverageClassFilesDirectories"?: string // Source files directories "codeCoverageSourceDirectories"?: string // Fail when code coverage results are missing "codeCoverageFailIfEmpty"?: bool // Restore original pom.xml after task execution "codeCoverageRestoreOriginalPomXml"?: bool // Set JAVA_HOME by "javaHomeOption"?: "JDKVersion" | "Path" // JDK version "jdkVersionOption"?: "default" | "1.21" | "1.17" | "1.11" | "1.10" | "1.9" | "1.8" | "1.7" | "1.6" // JDK path "jdkDirectory"?: string // JDK architecture "jdkArchitectureOption"?: "x86" | "x64" // Maven version "mavenVersionOption"?: "Default" | "Path" // Maven path "mavenDirectory"?: string // Set M2_HOME variable "mavenSetM2Home"?: bool // Set MAVEN_OPTS to "mavenOptions"?: string // Authenticate with Artifacts feeds "mavenAuthenticateFeed"?: bool // Skip generating effective POM while authenticating with // Artifacts feeds "effectivePomSkip"?: bool // Run SonarQube or SonarCloud analysis "sonarQubeRunAnalysis"?: bool // Use XML Jacoco reports for SonarQube analysis "isJacocoCoverageReportXML"?: bool // SonarQube scanner for Maven version "sqMavenPluginVersionChoice"?: "latest" | "pom" // Run Checkstyle "checkStyleRunAnalysis"?: bool // Run PMD "pmdRunAnalysis"?: bool // Run FindBugs "findBugsRunAnalysis"?: bool // Run SpotBugs analysis "spotBugsRunAnalysis"?: bool // Version number "spotBugsVersion"?: string // The goal for the spotbugs plugin "spotBugsGoal"?: "spotbugs" | "check" // Fail when bugs are found with spotbugs:check "failWhenBugsFound"?: bool }) ... }, { // Maven // // Build with Apache Maven "task"!: null | bool | number | =~"^Maven@1$" | [...] | { ... } // Maven inputs "inputs"?: null | bool | number | string | [...] | close({ // Maven POM file "mavenPomFile"?: string // Goal(s) "goals"?: string // Options "options"?: string // Publish to TFS/Team Services "publishJUnitResults"?: bool // Test Results Files "testResultsFiles"?: string // Test Run Title "testRunTitle"?: string // Code Coverage Tool "codeCoverageToolOption"?: "None" | "Cobertura" | "JaCoCo" // Class Inclusion/Exclusion Filters "codeCoverageClassFilter"?: string // Class Files Directories "codeCoverageClassFilesDirectories"?: string // Source Files Directories "codeCoverageSourceDirectories"?: string // Fail When Code Coverage Results Are Missing "codeCoverageFailIfEmpty"?: bool // Set JAVA_HOME by "javaHomeOption"?: "JDKVersion" | "Path" // JDK Version "jdkVersionOption"?: "default" | "1.9" | "1.8" | "1.7" | "1.6" // JDK Path "jdkDirectory"?: string // JDK Architecture "jdkArchitectureOption"?: "x86" | "x64" // Maven Version "mavenVersionOption"?: "Default" | "Path" // Maven Path "mavenDirectory"?: string // Set M2_HOME variable "mavenSetM2Home"?: bool // Set MAVEN_OPTS to "mavenOptions"?: string // Authenticate built-in Maven feeds "mavenAuthenticateFeed"?: bool // Run SonarQube Analysis "sonarQubeRunAnalysis"?: bool // SonarQube Endpoint "sonarQubeServiceEndpoint"?: string // SonarQube Project Name "sonarQubeProjectName"?: string // SonarQube Project Key "sonarQubeProjectKey"?: string // SonarQube Project Version "sonarQubeProjectVersion"?: string // The SonarQube server version is lower than 5.2 "sonarQubeSpecifyDB"?: bool // Db Connection String "sonarQubeDBUrl"?: string // Db Username "sonarQubeDBUsername"?: string // Db User Password "sonarQubeDBPassword"?: string // Include full analysis report in the build summary (SQ 5.3+) "sonarQubeIncludeFullReport"?: bool // Fail the build on quality gate failure (SQ 5.3+) "sonarQubeFailWhenQualityGateFails"?: bool // Run Checkstyle "checkStyleRunAnalysis"?: bool // Run PMD "pmdRunAnalysis"?: bool // Run FindBugs "findBugsRunAnalysis"?: bool }) ... }, { // .NET Core // // Build, test, package, or publish a dotnet application, or run a // custom dotnet command "task"!: null | bool | number | =~"^DotNetCoreCLI@2$" | [...] | { ... } // .NET Core inputs "inputs"?: null | bool | number | string | [...] | close({ // Azure Resource Manager connection "azureSubscription"?: string // Command "command"?: "build" | "push" | "pack" | "publish" | "restore" | "run" | "test" | "custom" // Publish web projects "publishWebProjects"?: bool // Path to project(s) or solution(s) "projects"?: string // Custom command "custom"?: string // Arguments "arguments"?: string // Arguments "restoreArguments"?: string // Publish test results and code coverage "publishTestResults"?: bool // Test run title "testRunTitle"?: string // Zip published projects "zipAfterPublish"?: bool // Add project's folder name to publish path "modifyOutputPath"?: bool // Feeds to use "feedsToUse"?: "select" | "config" // Use packages from this Azure Artifacts feed. Select from the // dropdown or enter [project name/]feed name. "vstsFeed"?: string // Use packages from NuGet.org "includeNuGetOrg"?: bool // Path to NuGet.config "nugetConfigPath"?: string // Credentials for feeds outside this organization/collection "externalFeedCredentials"?: string // Disable local cache "noCache"?: bool // Destination directory "restoreDirectory"?: string // Verbosity "verbosityRestore"?: "-" | "Quiet" | "Minimal" | "Normal" | "Detailed" | "Diagnostic" // Path to NuGet package(s) to publish "packagesToPush"?: string // Target feed location "nuGetFeedType"?: "internal" | "external" // Target feed "publishVstsFeed"?: string // Publish pipeline metadata "publishPackageMetadata"?: bool // NuGet server "publishFeedCredentials"?: string // Path to csproj or nuspec file(s) to pack "packagesToPack"?: string // Configuration to Package "configuration"?: string // Package Folder "packDirectory"?: string // Do not build "nobuild"?: bool // Include Symbols "includesymbols"?: bool // Include Source "includesource"?: bool // Automatic package versioning "versioningScheme"?: "off" | "byPrereleaseNumber" | "byEnvVar" | "byBuildNumber" // Environment variable "versionEnvVar"?: string // Major "majorVersion"?: string // Minor "minorVersion"?: string // Patch "patchVersion"?: string // Additional build properties "buildProperties"?: string // Verbosity "verbosityPack"?: "-" | "Quiet" | "Minimal" | "Normal" | "Detailed" | "Diagnostic" // Working directory "workingDirectory"?: string // Set timeout for package download request "requestTimeout"?: int }) ... }, { // .NET Core (PREVIEW) // // Build, test and publish using dotnet core command-line. "task"!: null | bool | number | =~"^DotNetCoreCLI@0$" | [...] | { ... } // .NET Core (PREVIEW) inputs "inputs"?: null | bool | number | string | [...] | close({ // Command "command"?: "build" | "publish" | "restore" | "test" | "run" // Publish Web Projects "publishWebProjects"?: bool // Project(s) "projects"?: string // Arguments "arguments"?: string // Zip Published Projects "zipAfterPublish"?: bool }) ... }, { // .NET Core // // Build, test and publish using dotnet core command-line. "task"!: null | bool | number | =~"^DotNetCoreCLI@1$" | [...] | { ... } // .NET Core inputs "inputs"?: null | bool | number | string | [...] | close({ // Command "command"?: "build" | "publish" | "restore" | "test" | "run" // Publish Web Projects "publishWebProjects"?: bool // Project(s) "projects"?: string // Arguments "arguments"?: string // Zip Published Projects "zipAfterPublish"?: bool }) ... }, { // Xamarin Component Restore // // This task is deprecated. Use 'NuGet' instead. "task"!: null | bool | number | =~"^XamarinComponentRestore@0$" | [...] | { ... } // Xamarin Component Restore inputs "inputs"!: null | bool | number | string | [...] | close({ // Path to solution "solutionFile"?: string // Email "email"!: string // Password "password"!: string }) ... }, { // Azure App Service deploy // // Deploy to Azure App Service a web, mobile, or API app using // Docker, Java, .NET, .NET Core, Node.js, PHP, Python, or Ruby "task"!: null | bool | number | =~"^AzureRmWebAppDeployment@4$" | [...] | { ... } // Azure App Service deploy inputs "inputs"?: null | bool | number | string | [...] | close({ // Connection type "ConnectionType"?: "AzureRM" | "PublishProfile" // Azure subscription "azureSubscription"?: string // Publish profile path "PublishProfilePath"?: string // Publish profile password "PublishProfilePassword"?: string // App Service type "appType"?: "webApp" | "webAppLinux" | "webAppContainer" | "webAppHyperVContainer" | "functionApp" | "functionAppLinux" | "functionAppContainer" | "apiApp" | "mobileApp" // App Service name "WebAppName"?: string // Deploy to Slot or App Service Environment "deployToSlotOrASE"?: bool // Resource group "ResourceGroupName"?: string // Slot "SlotName"?: string // Registry or Namespace "DockerNamespace"?: string // Image "DockerRepository"?: string // Tag "DockerImageTag"?: string // Virtual application "VirtualApplication"?: string // Package or folder "packageForLinux"?: string // Runtime Stack "RuntimeStack"?: string // Runtime Stack "RuntimeStackFunction"?: "DOTNET|2.2" | "DOTNET|3.1" | "JAVA|8" | "JAVA|11" | "NODE|8" | "NODE|10" | "NODE|12" | "NODE|14" | "NODE|20" | "NODE|22" | "PYTHON|3.6" | "PYTHON|3.7" | "PYTHON|3.8" // Startup command "StartupCommand"?: string // Deployment script type "ScriptType"?: "" | "Inline Script" | "File Path" // Inline Script "InlineScript"?: string // Deployment script path "ScriptPath"?: string // Generate web.config parameters for Python, Node.js, Go and Java // apps "WebConfigParameters"?: string // App settings "AppSettings"?: string // Configuration settings "ConfigurationSettings"?: string // Select deployment method "enableCustomDeployment"?: bool // Deployment method "DeploymentType"?: "webDeploy" | "zipDeploy" | "runFromZip" // Take App Offline "TakeAppOfflineFlag"?: bool // SetParameters file "SetParametersFile"?: string // Remove additional files at destination "RemoveAdditionalFilesFlag"?: bool // Exclude files from the App_Data folder "ExcludeFilesFromAppDataFlag"?: bool // Additional arguments "AdditionalArguments"?: string // Rename locked files "RenameFilesFlag"?: bool // XML transformation "enableXmlTransform"?: bool // XML variable substitution "enableXmlVariableSubstitution"?: bool // JSON variable substitution "JSONFiles"?: string }) ... }, { // Azure App Service Deploy // // Update Azure App Service using Web Deploy / Kudu REST APIs "task"!: null | bool | number | =~"^AzureRmWebAppDeployment@2$" | [...] | { ... } // Azure App Service Deploy inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure Subscription "ConnectedServiceName"!: string // App Service name "WebAppName"!: string // Deploy to slot "DeployToSlotFlag"?: bool // Resource group "ResourceGroupName"?: string // Slot "SlotName"?: string // Virtual Application "VirtualApplication"?: string // Package or Folder "Package"?: string // App Service URL "WebAppUri"?: string // Publish using Web Deploy "UseWebDeploy"?: bool // SetParameters File "SetParametersFile"?: string // Remove Additional Files at Destination "RemoveAdditionalFilesFlag"?: bool // Exclude Files from the App_Data Folder "ExcludeFilesFromAppDataFlag"?: bool // Additional Arguments "AdditionalArguments"?: string // Take App Offline "TakeAppOfflineFlag"?: bool }) ... }, { // Azure App Service deploy // // Deploy to Azure App Service a web, mobile, or API app using // Docker, Java, .NET, .NET Core, Node.js, PHP, Python, or Ruby "task"!: null | bool | number | =~"^AzureRmWebAppDeployment@5$" | [...] | { ... } // Azure App Service deploy inputs "inputs"?: null | bool | number | string | [...] | close({ // Connection type "ConnectionType"?: "AzureRM" | "PublishProfile" // Azure subscription "azureSubscription"?: string // Publish profile path "PublishProfilePath"?: string // Publish profile password "PublishProfilePassword"?: string // App Service type "appType"?: "webApp" | "webAppLinux" | "webAppContainer" | "webAppHyperVContainer" | "functionApp" | "functionAppLinux" | "functionAppContainer" | "apiApp" | "mobileApp" // App Service name "WebAppName"?: string // Deploy to Slot or App Service Environment "deployToSlotOrASE"?: bool // Resource group "ResourceGroupName"?: string // Slot "SlotName"?: string // Registry or Namespace "DockerNamespace"?: string // Image "DockerRepository"?: string // Tag "DockerImageTag"?: string // Virtual application "VirtualApplication"?: string // Package or folder "packageForLinux"?: string // Runtime Stack "RuntimeStack"?: "DOTNETCORE|9.0" | "DOTNETCORE|8.0" | "DOTNETCORE|7.0" | "DOTNETCORE|6.0" | "NODE|22-lts" | "NODE|20-lts" | "NODE|18-lts" | "NODE|16-lts" | "PYTHON|3.13" | "PYTHON|3.12" | "PYTHON|3.11" | "PYTHON|3.10" | "PYTHON|3.9" | "PYTHON|3.8" | "PHP|8.3" | "PHP|8.2" | "PHP|8.1" | "PHP|8.0" | "JAVA|21-java21" | "JAVA|17-java17" | "JAVA|11-java11" | "JAVA|8-jre8" | "JBOSSEAP|8-java17" | "JBOSSEAP|8-java11" | "JBOSSEAP|7-java17" | "JBOSSEAP|7-java11" | "JBOSSEAP|7-java8" | "TOMCAT|10.1-java21" | "TOMCAT|10.1-java17" | "TOMCAT|10.1-java11" | "TOMCAT|10.0-java17" | "TOMCAT|10.0-java11" | "TOMCAT|10.0-jre8" | "TOMCAT|9.0-java21" | "TOMCAT|9.0-java17" | "TOMCAT|9.0-java11" | "TOMCAT|9.0-jre8" | "TOMCAT|8.5-java11" | "TOMCAT|8.5-jre8" // Runtime Stack "RuntimeStackFunction"?: "DOTNET|2.2" | "DOTNET|3.1" | "JAVA|8" | "JAVA|11" | "NODE|8" | "NODE|10" | "NODE|12" | "NODE|14" | "NODE|20" | "NODE|22" | "PYTHON|3.6" | "PYTHON|3.7" | "PYTHON|3.8" // Startup command "StartupCommand"?: string // Deployment script type "ScriptType"?: "" | "Inline Script" | "File Path" // Inline Script "InlineScript"?: string // Deployment script path "ScriptPath"?: string // Generate web.config parameters for Python, Node.js, Go and Java // apps "WebConfigParameters"?: string // App settings "AppSettings"?: string // Configuration settings "ConfigurationSettings"?: string // Select deployment method "enableCustomDeployment"?: bool // Deployment method "DeploymentType"?: "webDeploy" | "zipDeploy" | "runFromZip" // Take App Offline "TakeAppOfflineFlag"?: bool // SetParameters file "SetParametersFile"?: string // Remove additional files at destination "RemoveAdditionalFilesFlag"?: bool // Exclude files from the App_Data folder "ExcludeFilesFromAppDataFlag"?: bool // Additional arguments "AdditionalArguments"?: string // Rename locked files "RenameFilesFlag"?: bool // XML transformation "enableXmlTransform"?: bool // XML variable substitution "enableXmlVariableSubstitution"?: bool // JSON variable substitution "JSONFiles"?: string // Deployment method "DeploymentTypeLinux"?: "oneDeploy" | "zipDeploy" // Enable clean deployment "CleanDeploymentFlag"?: bool }) ... }, { // Azure App Service deploy // // Deploy to Azure App Service a web, mobile, or API app using // Docker, Java, .NET, .NET Core, Node.js, PHP, Python, or Ruby "task"!: null | bool | number | =~"^AzureRmWebAppDeployment@3$" | [...] | { ... } // Azure App Service deploy inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription "azureSubscription"!: string // App type "appType"?: "app" | "applinux" | "functionapp" | "api" | "mobileapp" // App Service name "WebAppName"!: string // Deploy to slot "DeployToSlotFlag"?: bool // Resource group "ResourceGroupName"?: string // Slot "SlotName"?: string // Image Source "ImageSource"?: "Registry" | "Builtin" // Registry "AzureContainerRegistry"?: string // Registry Login Server Name "AzureContainerRegistryLoginServer"?: string // Image "AzureContainerRegistryImage"?: string // Tag "AzureContainerRegistryTag"?: string // Repository Access "DockerRepositoryAccess"?: "private" | "public" // Registry Connection "dockerRegistryConnection"?: string // Image "PrivateRegistryImage"?: string // Tag "PrivateRegistryTag"?: string // Registry or Namespace "DockerNamespace"?: string // Image "DockerRepository"?: string // Tag "DockerImageTag"?: string // Virtual application "VirtualApplication"?: string // Package or folder "Package"?: string // Package or folder "packageForLinux"?: string // Runtime Stack "RuntimeStack"?: string // Startup command "StartupCommand"?: string // App Service URL "WebAppUri"?: string // Deployment script type "ScriptType"?: "" | "Inline Script" | "File Path" // Inline Script "InlineScript"?: string // Deployment script path "ScriptPath"?: string // Generate Web.config "GenerateWebConfig"?: bool // Web.config parameters "WebConfigParameters"?: string // App settings "AppSettings"?: string // Configuration settings "ConfigurationSettings"?: string // Take App Offline "TakeAppOfflineFlag"?: bool // Publish using Web Deploy "UseWebDeploy"?: bool // SetParameters file "SetParametersFile"?: string // Remove additional files at destination "RemoveAdditionalFilesFlag"?: bool // Exclude files from the App_Data folder "ExcludeFilesFromAppDataFlag"?: bool // Additional arguments "AdditionalArguments"?: string // Rename locked files "RenameFilesFlag"?: bool // XML transformation "enableXmlTransform"?: bool // XML variable substitution "enableXmlVariableSubstitution"?: bool // JSON variable substitution "JSONFiles"?: string }) ... }, { // PowerShell on target machines // // Execute PowerShell scripts on remote machines using PSSession // and Invoke-Command for remoting "task"!: null | bool | number | =~"^PowerShellOnTargetMachines@3$" | [...] | { ... } // PowerShell on target machines inputs "inputs"!: null | bool | number | string | [...] | close({ // Machines "Machines"!: string // Username "UserName"?: string // Password "UserPassword"?: string // Script Type "ScriptType"?: "FilePath" | "Inline" // Script File Path "ScriptPath"?: string // Script "InlineScript"?: string // Script Arguments "ScriptArguments"?: string // Initialization script "InitializationScript"?: string // Session Variables "SessionVariables"?: string // Protocol "CommunicationProtocol"?: "Http" | "Https" // Authentication "AuthenticationMechanism"?: "Default" | "Credssp" // Session Option parameters "NewPsSessionOptionArguments"?: string // ErrorActionPreference "ErrorActionPreference"?: "stop" | "continue" | "silentlyContinue" // Fail on Standard Error "failOnStderr"?: bool // Ignore $LASTEXITCODE "ignoreLASTEXITCODE"?: bool // Working Directory "WorkingDirectory"?: string // Run PowerShell in Parallel "RunPowershellInParallel"?: bool }) ... }, { // PowerShell on Target Machines // // Execute PowerShell scripts on remote machine(s) "task"!: null | bool | number | =~"^PowerShellOnTargetMachines@1$" | [...] | { ... } // PowerShell on Target Machines inputs "inputs"!: null | bool | number | string | [...] | close({ // Machines "EnvironmentName"!: string // Admin Login "AdminUserName"?: string // Password "AdminPassword"?: string // Protocol "Protocol"?: "Http" | "Https" // Test Certificate "TestCertificate"?: bool // PowerShell Script "ScriptPath"!: string // Script Arguments "ScriptArguments"?: string // Initialization Script "InitializationScriptPath"?: string // Session Variables "SessionVariables"?: string // Run PowerShell in Parallel "RunPowershellInParallel"?: bool // Select Machines By "ResourceFilteringMethod"?: "machineNames" | "tags" // Filter Criteria "MachineNames"?: string }) ... }, { // PowerShell on Target Machines // // Execute PowerShell scripts on remote machine(s) "task"!: null | bool | number | =~"^PowerShellOnTargetMachines@2$" | [...] | { ... } // PowerShell on Target Machines inputs "inputs"!: null | bool | number | string | [...] | close({ // Machines "EnvironmentName"!: string // Admin Login "AdminUserName"?: string // Password "AdminPassword"?: string // Protocol "Protocol"?: "Http" | "Https" // Test Certificate "TestCertificate"?: bool // PowerShell Script "ScriptPath"!: string // Script Arguments "ScriptArguments"?: string // Initialization Script "InitializationScriptPath"?: string // Session Variables "SessionVariables"?: string // Run PowerShell in Parallel "RunPowershellInParallel"?: bool // Select Machines By "ResourceFilteringMethod"?: "machineNames" | "tags" // Filter Criteria "MachineNames"?: string }) ... }, { // Publish code coverage // // Publish Cobertura or JaCoCo code coverage results from a build "task"!: null | bool | number | =~"^PublishCodeCoverageResults@1$" | [...] | { ... } // Publish code coverage inputs "inputs"!: null | bool | number | string | [...] | close({ // Code coverage tool "codeCoverageTool"?: "Cobertura" | "JaCoCo" // Summary file "summaryFileLocation"!: string // Path to Source files "pathToSources"?: string // Report directory "reportDirectory"?: string // Additional files "additionalCodeCoverageFiles"?: string // Fail when code coverage results are missing "failIfCoverageEmpty"?: bool }) ... }, { // Run functional tests // // Deprecated: This task and it’s companion task (Visual Studio // Test Agent Deployment) are deprecated. Use the 'Visual Studio // Test' task instead. The VSTest task can run unit as well as // functional tests. Run tests on one or more agents using the // multi-agent job setting. Use the 'Visual Studio Test Platform' // task to run tests without needing Visual Studio on the agent. // VSTest task also brings new capabilities such as automatically // rerunning failed tests. "task"!: null | bool | number | =~"^RunVisualStudioTestsusingTestAgent@1$" | [...] | { ... } // Run functional tests inputs "inputs"!: null | bool | number | string | [...] | close({ // Machines "testMachineGroup"!: string // Test Drop Location "dropLocation"!: string // Test Selection "testSelection"?: "testAssembly" | "testPlan" // Test Plan "testPlan"?: string // Test Suite "testSuite"?: string // Test Configuration "testConfiguration"?: string // Test Assembly "sourcefilters"?: string // Test Filter criteria "testFilterCriteria"?: string // Run Settings File "runSettingsFile"?: string // Override Test Run Parameters "overrideRunParams"?: string // Code Coverage Enabled "codeCoverageEnabled"?: bool // Distribute tests by number of machines "customSlicingEnabled"?: bool // Test Run Title "testRunTitle"?: string // Platform "platform"?: string // Configuration "configuration"?: string // Test Configurations "testConfigurations"?: string // Application Under Test Machines "autMachineGroup"?: string }) ... }, { // Manual intervention // // Pause deployment and wait for manual intervention "task"!: null | bool | number | =~"^ManualIntervention@8$" | [...] | { ... } // Manual intervention inputs "inputs"?: null | bool | number | string | [...] | close({ // Instructions "instructions"?: string // Notify users "emailRecipients"?: string // On timeout "onTimeout"?: "reject" | "resume" }) ... }, { // Install Apple provisioning profile // // Install an Apple provisioning profile required to build on a // macOS agent machine "task"!: null | bool | number | =~"^InstallAppleProvisioningProfile@1$" | [...] | { ... } // Install Apple provisioning profile inputs "inputs"?: null | bool | number | string | [...] | close({ // Provisioning profile location "provisioningProfileLocation"?: "secureFiles" | "sourceRepository" // Provisioning profile "provProfileSecureFile"?: string // Provisioning profile "provProfileSourceRepository"?: string // Remove profile after build "removeProfile"?: bool }) ... }, { // Install Apple Provisioning Profile // // Install an Apple provisioning profile required to build on a // macOS agent "task"!: null | bool | number | =~"^InstallAppleProvisioningProfile@0$" | [...] | { ... } // Install Apple Provisioning Profile inputs "inputs"!: null | bool | number | string | [...] | close({ // Provisioning Profile "provProfileSecureFile"!: string // Remove Profile After Build "removeProfile"?: bool }) ... }, { // SonarQube for MSBuild - End Analysis // // [DEPRECATED] Finish the analysis and upload the results to // SonarQube "task"!: null | bool | number | =~"^SonarQubePostTest@1$" | [...] | { ... } // SonarQube for MSBuild - End Analysis inputs "inputs"?: null | bool | number | string | [...] | close({}) ... }, { // PyPI publisher // // Create and upload an sdist or wheel to a PyPI-compatible index // using Twine "task"!: null | bool | number | =~"^PyPIPublisher@0$" | [...] | { ... } // PyPI publisher inputs "inputs"!: null | bool | number | string | [...] | close({ // PyPI service connection "pypiConnection"!: string // Python package directory "packageDirectory"!: string // Also publish a wheel "alsoPublishWheel"?: bool }) ... }, { // Chef Knife // // Run scripts with Knife commands on your Chef workstation "task"!: null | bool | number | =~"^ChefKnife@1$" | [...] | { ... } // Chef Knife inputs "inputs"!: null | bool | number | string | [...] | close({ // Chef Subscription "ConnectedServiceName"!: string // Script Path "ScriptPath"!: string // Script Arguments "ScriptArguments"?: string }) ... }, { // Go tool installer // // Find in cache or download a specific version of Go and add it // to the PATH "task"!: null | bool | number | =~"^GoTool@0$" | [...] | { ... } // Go tool installer inputs "inputs"?: null | bool | number | string | [...] | close({ // Version "version"?: string // GOPATH "goPath"?: string // GOBIN "goBin"?: string }) ... }, { // Xcode Package iOS // // Generate an .ipa file from Xcode build output using xcrun // (Xcode 7 or below) "task"!: null | bool | number | =~"^XcodePackageiOS@0$" | [...] | { ... } // Xcode Package iOS inputs "inputs"!: null | bool | number | string | [...] | close({ // Name of .app "appName"?: string // Name of .ipa "ipaName"?: string // Provisioning Profile Name "provisioningProfile"!: string // SDK "sdk"?: string // Path to .app "appPath"?: string // Path to place .ipa "ipaPath"?: string }) ... }, { // Go // // Get, build, or test a Go application, or run a custom Go // command "task"!: null | bool | number | =~"^Go@0$" | [...] | { ... } // Go inputs "inputs"?: null | bool | number | string | [...] | close({ // Command "command"?: "get" | "build" | "test" | "custom" // Custom command "customCommand"?: string // Arguments "arguments"?: string // Working directory "workingDirectory"?: string }) ... }, { // Publish Pipeline Metadata // // Publish Pipeline Metadata to Evidence store "task"!: null | bool | number | =~"^PublishPipelineMetadata@0$" | [...] | { ... } // Publish Pipeline Metadata inputs "inputs"?: null | bool | number | string | [...] | close({}) ... }, { // Docker // // Build, tag, push, or run Docker images, or run a Docker command "task"!: null | bool | number | =~"^Docker@0$" | [...] | { ... } // Docker inputs "inputs"?: null | bool | number | string | [...] | close({ // Container Registry Type "containerregistrytype"?: "Azure Container Registry" | "Container Registry" // Docker Registry Service Connection "dockerRegistryConnection"?: string // Azure subscription "azureSubscription"?: string // Azure Container Registry "azureContainerRegistry"?: string // Action "action"?: "Build an image" | "Tag images" | "Push an image" | "Push images" | "Run an image" | "Run a Docker command" // Docker File "dockerFile"?: string // Add base image metadata to image(s) "addBaseImageData"?: bool // Build Arguments "buildArguments"?: string // Use Default Build Context "defaultContext"?: bool // Build Context "context"?: string // Image Name "imageName"?: string // Image Names Path "imageNamesPath"?: string // Qualify Image Name "qualifyImageName"?: bool // Additional Image Tags "additionalImageTags"?: string // Include Source Tags "includeSourceTags"?: bool // Include Latest Tag "includeLatestTag"?: bool // Image Digest File "imageDigestFile"?: string // Container Name "containerName"?: string // Ports "ports"?: string // Volumes "volumes"?: string // Environment Variables "envVars"?: string // Working Directory "workDir"?: string // Entry Point Override "entrypoint"?: string // Command "containerCommand"?: string // Run In Background "detached"?: bool // Restart Policy "restartPolicy"?: "no" | "onFailure" | "always" | "unlessStopped" // Maximum Restart Retries "restartMaxRetries"?: string // Command "customCommand"?: string // Docker Host Service Connection "dockerHostEndpoint"?: string // Force image name to follow Docker naming convention "enforceDockerNamingConvention"?: bool // Working Directory "workingDirectory"?: string // Memory limit "memory"?: string }) ... }, { // Docker // // Build or push Docker images, login or logout, start or stop // containers, or run a Docker command "task"!: null | bool | number | =~"^Docker@2$" | [...] | { ... } // Docker inputs "inputs"?: null | bool | number | string | [...] | close({ // Container registry "containerRegistry"?: string // Container repository "repository"?: string // Command "command"?: "buildAndPush" | "build" | "push" | "login" | "logout" | "start" | "stop" // Dockerfile "Dockerfile"?: string // Build context "buildContext"?: string // Tags "tags"?: string // Arguments "arguments"?: string // Add Pipeline metadata to image(s) "addPipelineData"?: bool // Add base image metadata to image(s) "addBaseImageData"?: bool // Container "container"?: string }) ... }, { // Docker // // Build, tag, push, or run Docker images, or run a Docker command "task"!: null | bool | number | =~"^Docker@1$" | [...] | { ... } // Docker inputs "inputs"?: null | bool | number | string | [...] | close({ // Container registry type "containerregistrytype"?: "Azure Container Registry" | "Container Registry" // Add base image metadata to image(s) "addBaseImageData"?: bool // Docker registry service connection "dockerRegistryEndpoint"?: string // Azure subscription "azureSubscriptionEndpoint"?: string // Azure container registry "azureContainerRegistry"?: string // Command "command"?: "Build an image" | "Tag image" | "Push an image" | "Run an image" | "login" | "logout" // Dockerfile "dockerFile"?: string // Arguments "arguments"?: string // Push multiple images "pushMultipleImages"?: bool // Tag multiple images "tagMultipleImages"?: bool // Image name "imageName"?: string // Image names path "imageNamesPath"?: string // Qualify image name "qualifyImageName"?: bool // Qualify source image name "qualifySourceImageName"?: bool // Include source tags "includeSourceTags"?: bool // Include latest tag "includeLatestTag"?: bool // Add default labels "addDefaultLabels"?: bool // Use default build context "useDefaultContext"?: bool // Build context "buildContext"?: string // Image digest file "imageDigestFile"?: string // Container name "containerName"?: string // Ports "ports"?: string // Volumes "volumes"?: string // Environment variables "envVars"?: string // Working directory "workingDirectory"?: string // Entry point override "entrypointOverride"?: string // Container command "containerCommand"?: string // Run in background "runInBackground"?: bool // Restart policy "restartPolicy"?: "no" | "onFailure" | "always" | "unlessStopped" // Maximum restart retries "maxRestartRetries"?: string // Docker host service connection "dockerHostEndpoint"?: string // Force image name to follow Docker naming convention "enforceDockerNamingConvention"?: bool // Memory limit "memoryLimit"?: string }) ... }, { // Docker // // Build or push Docker images, login or logout, start or stop // containers, or run a Docker command "task"!: null | bool | number | =~"^Docker@2$" | [...] | { ... } // Docker inputs "inputs"?: null | bool | number | string | [...] | close({ // Container registry "containerRegistry"?: string // Container repository "repository"?: string // Command "command"?: "buildAndPush" | "build" | "push" | "login" | "logout" | "start" | "stop" // Dockerfile "Dockerfile"?: string // Build context "buildContext"?: string // Tags "tags"?: string // Arguments "arguments"?: string // Add Pipeline metadata to image(s) "addPipelineData"?: bool // Add base image metadata to image(s) "addBaseImageData"?: bool // Container "container"?: string }) ... }, { // Jenkins Queue Job // // Queue a job on a Jenkins server "task"!: null | bool | number | =~"^JenkinsQueueJob@1$" | [...] | { ... } // Jenkins Queue Job inputs "inputs"!: null | bool | number | string | [...] | close({ // Jenkins service endpoint "serverEndpoint"!: string // Job name "jobName"!: string // Job is of Multibranch Pipeline type "isMultibranchJob"?: bool // Multibranch Pipeline Branch "multibranchPipelineBranch"?: string // Capture console output and wait for completion "captureConsole"?: bool // Capture pipeline output and wait for pipeline completion "capturePipeline"?: bool // Parameterized job "parameterizedJob"?: bool // Job parameters "jobParameters"?: string }) ... }, { // Jenkins queue job // // Queue a job on a Jenkins server "task"!: null | bool | number | =~"^JenkinsQueueJob@2$" | [...] | { ... } // Jenkins queue job inputs "inputs"!: null | bool | number | string | [...] | close({ // Jenkins service connection "serverEndpoint"!: string // Job name "jobName"!: string // Job is of multibranch pipeline type "isMultibranchJob"?: bool // Multibranch pipeline branch "multibranchPipelineBranch"?: string // Capture console output and wait for completion "captureConsole"?: bool // Capture pipeline output and wait for pipeline completion "capturePipeline"?: bool // Parameterized job "isParameterizedJob"?: bool // Job parameters "jobParameters"?: string // Fail on unstable result "failOnUnstableResult"?: bool // Number of retries for failed connection "retryCount"?: string // Time between retries "delayBetweenRetries"?: string }) ... }, { // FTP upload // // Upload files using FTP "task"!: null | bool | number | =~"^FtpUpload@2$" | [...] | { ... } // FTP upload inputs "inputs"!: null | bool | number | string | [...] | close({ // Authentication Method "credentialsOption"?: "serviceEndpoint" | "inputs" // FTP Service Connection "serverEndpoint"?: string // Server URL "serverUrl"?: string // Username "username"?: string // Password "password"?: string // Use implicit FTPS "implicitFTPS"?: bool // Root folder "rootDirectory"!: string // File patterns "filePatterns"?: string // Remote directory "remoteDirectory"?: string // Enable UTF8 support "enableUtf8"?: bool // Delete remote directory "clean"?: bool // Clear remote directory contents "cleanContents"?: bool // Preserve file paths "preservePaths"?: bool // Trust server certificate "trustSSL"?: bool // FTP Commands "customCmds"?: string }) ... }, { // FTP upload // // Upload files using FTP "task"!: null | bool | number | =~"^FtpUpload@1$" | [...] | { ... } // FTP upload inputs "inputs"!: null | bool | number | string | [...] | close({ // Authentication Method "credentialsOption"?: "serviceEndpoint" | "inputs" // FTP Service Connection "serverEndpoint"?: string // Server URL "serverUrl"?: string // Username "username"?: string // Password "password"?: string // Root folder "rootDirectory"!: string // File patterns "filePatterns"?: string // Remote directory "remoteDirectory"?: string // Delete remote directory "clean"?: bool // Clear remote directory contents "cleanContents"?: bool // Overwrite "overwrite"?: bool // Preserve file paths "preservePaths"?: bool // Trust server certificate "trustSSL"?: bool }) ... }, { // Windows machine file copy // // Copy files to remote Windows machines "task"!: null | bool | number | =~"^WindowsMachineFileCopy@2$" | [...] | { ... } // Windows machine file copy inputs "inputs"!: null | bool | number | string | [...] | close({ // Source "SourcePath"!: string // Machines "MachineNames"!: string // Admin Login "AdminUserName"!: string // Password "AdminPassword"!: string // Destination Folder "TargetPath"!: string // Clean Target "CleanTargetBeforeCopy"?: bool // Copy Files in Parallel "CopyFilesInParallel"?: bool // Additional Arguments "AdditionalArguments"?: string }) ... }, { // Windows machine file copy // // Copy files to remote Windows machines "task"!: null | bool | number | =~"^WindowsMachineFileCopy@1$" | [...] | { ... } // Windows machine file copy inputs "inputs"!: null | bool | number | string | [...] | close({ // Source "SourcePath"!: string // Machines "EnvironmentName"?: string // Admin Login "AdminUserName"?: string // Password "AdminPassword"?: string // Destination Folder "TargetPath"!: string // Clean Target "CleanTargetBeforeCopy"?: bool // Copy Files in Parallel "CopyFilesInParallel"?: bool // Additional Arguments "AdditionalArguments"?: string // Select Machines By "ResourceFilteringMethod"?: "machineNames" | "tags" // Filter Criteria "MachineNames"?: string }) ... }, { // Android Build // // [Deprecated] Use Gradle "task"!: null | bool | number | =~"^AndroidBuild@1$" | [...] | { ... } // Android Build inputs "inputs"?: null | bool | number | string | [...] | close({ // Location of Gradle Wrapper "gradleWrapper"?: string // Project Directory "gradleProj"?: string // Gradle Arguments "gradleArguments"?: string // Name "avdName"?: string // Create AVD "createAvd"?: bool // AVD Target SDK "emulatorTarget"?: string // AVD Device "emulatorDevice"?: string // AVD ABI "avdAbi"?: string // Overwrite Existing AVD "avdForce"?: bool // Create AVD Optional Arguments "avdOptionalArgs"?: string // Start and Stop Android Emulator "startEmulator"?: bool // Timeout in Seconds "emulatorTimeout"?: string // Headless Display "emulatorHeadless"?: bool // Emulator Optional Arguments "emulatorOptionalArgs"?: string // Delete AVD "deleteAvd"?: bool }) ... }, { // Python twine upload authenticate // // Authenticate for uploading Python distributions using twine. // Add '-r FeedName/EndpointName --config-file $(PYPIRC_PATH)' to // your twine upload command. For feeds present in this // organization, use the feed name as the repository (-r). // Otherwise, use the endpoint name defined in the service // connection. "task"!: null | bool | number | =~"^TwineAuthenticate@1$" | [...] | { ... } // Python twine upload authenticate inputs "inputs"?: null | bool | number | string | [...] | close({ // 'Azure DevOps' Service Connection "azureDevOpsServiceConnection"?: string // Azure Artifacts Feed url. "feedUrl"?: string // My feed name (select below) "artifactFeed"?: string // Feed from external organizations "pythonUploadServiceConnection"?: string }) ... }, { // Python twine upload authenticate // // Authenticate for uploading Python distributions using twine. // Add '-r FeedName/EndpointName --config-file $(PYPIRC_PATH)' to // your twine upload command. For feeds present in this // organization, use the feed name as the repository (-r). // Otherwise, use the endpoint name defined in the service // connection. "task"!: null | bool | number | =~"^TwineAuthenticate@0$" | [...] | { ... } // Python twine upload authenticate inputs "inputs"?: null | bool | number | string | [...] | close({ // My feeds (select below) "artifactFeeds"?: string // Feeds from external organizations "externalFeeds"?: string // Publish pipeline metadata "publishPackageMetadata"?: bool }) ... }, { // IIS web app deploy // // Deploy a website or web application using Web Deploy "task"!: null | bool | number | =~"^IISWebAppDeploymentOnMachineGroup@0$" | [...] | { ... } // IIS web app deploy inputs "inputs"!: null | bool | number | string | [...] | close({ // Website Name "WebSiteName"!: string // Virtual Application "VirtualApplication"?: string // Package or Folder "Package"?: string // SetParameters File "SetParametersFile"?: string // Remove Additional Files at Destination "RemoveAdditionalFilesFlag"?: bool // Exclude Files from the App_Data Folder "ExcludeFilesFromAppDataFlag"?: bool // Take App Offline "TakeAppOfflineFlag"?: bool // Additional Arguments "AdditionalArguments"?: string // XML transformation "XmlTransformation"?: bool // XML variable substitution "XmlVariableSubstitution"?: bool // JSON variable substitution "JSONFiles"?: string }) ... }, { // Python script // // Run a Python file or inline script "task"!: null | bool | number | =~"^PythonScript@0$" | [...] | { ... } // Python script inputs "inputs"?: null | bool | number | string | [...] | close({ // Script source "scriptSource"?: "filePath" | "inline" // Script path "scriptPath"?: string // Script "script"?: string // Arguments "arguments"?: string // Python interpreter "pythonInterpreter"?: string // Working directory "workingDirectory"?: string // Fail on standard error "failOnStderr"?: bool }) ... }, { // Helm tool installer // // Install Helm and Kubernetes on an agent machine "task"!: null | bool | number | =~"^HelmInstaller@0$" | [...] | { ... } // Helm tool installer inputs "inputs"?: null | bool | number | string | [...] | close({ // Helm Version Spec "helmVersion"?: string // Check for latest version of Helm "checkLatestHelmVersion"?: bool // Install Kubectl "installKubectl"?: bool // Kubectl Version Spec "kubectlVersion"?: string // Check for latest version of kubectl "checkLatestKubectl"?: bool }) ... }, { // Helm tool installer // // Install Helm on an agent machine "task"!: null | bool | number | =~"^HelmInstaller@1$" | [...] | { ... } // Helm tool installer inputs "inputs"?: null | bool | number | string | [...] | close({ // Helm Version Spec "helmVersionToInstall"?: string }) ... }, { // Node.js tasks runner installer // // Install specific Node.js version to run node tasks "task"!: null | bool | number | =~"^NodeTaskRunnerInstaller@0$" | [...] | { ... } // Node.js tasks runner installer inputs "inputs"?: null | bool | number | string | [...] | close({ // Version of runner to install "nodeVersion"?: "6" | "10" | "16" }) ... }, { // Xamarin License // // [Deprecated] Upgrade to free version of Xamarin: // https://store.xamarin.com "task"!: null | bool | number | =~"^XamarinLicense@1$" | [...] | { ... } // Xamarin License inputs "inputs"!: null | bool | number | string | [...] | close({ // Action "action"?: "Activate" | "Deactivate" // Email "email"!: string // Password "password"!: string // Xamarin Product "product"?: "MA" | "MT" | "MM" // Timeout in Seconds "timeout"?: string }) ... }, { // NuGet authenticate // // This version of the task is deprecated, use NuGetAuthenticateV1 // instead. Configure NuGet tools to authenticate with Azure // Artifacts and other NuGet repositories. Requires NuGet >= // 4.8.5385, dotnet >= 2.1.400, or MSBuild >= 15.8.166.59604. "task"!: null | bool | number | =~"^NuGetAuthenticate@0$" | [...] | { ... } // NuGet authenticate inputs "inputs"?: null | bool | number | string | [...] | close({ // Service connection credentials for feeds outside this // organization "nuGetServiceConnections"?: string // Reinstall the credential provider even if already installed "forceReinstallCredentialProvider"?: bool }) ... }, { // NuGet authenticate // // Configure NuGet tools to authenticate with Azure Artifacts and // other NuGet repositories. Requires NuGet >= 4.8.5385, dotnet // >= 6, or MSBuild >= 15.8.166.59604 "task"!: null | bool | number | =~"^NuGetAuthenticate@1$" | [...] | { ... } // NuGet authenticate inputs "inputs"?: null | bool | number | string | [...] | close({ // 'Azure DevOps' Service Connection "azureDevOpsServiceConnection"?: string // Azure Artifacts URL "feedUrl"?: string // Reinstall the credential provider even if already installed "forceReinstallCredentialProvider"?: bool // Service connection credentials for feeds outside this // organization "nuGetServiceConnections"?: string }) ... }, { // Download GitHub Nuget Packages // // Restore your nuget packages using dotnet CLI "task"!: null | bool | number | =~"^DownloadGitHubNugetPackage@1$" | [...] | { ... } // Download GitHub Nuget Packages inputs "inputs"!: null | bool | number | string | [...] | close({ // Package Name "packageName"!: string // Package Version "version"!: string // Credentials for feed from GitHub "externalFeedCredentials"?: string // Destination directory "restoreDirectory"?: string }) ... }, { // Maven Authenticate // // Provides credentials for Azure Artifacts feeds and external // maven repositories "task"!: null | bool | number | =~"^MavenAuthenticate@0$" | [...] | { ... } // Maven Authenticate inputs "inputs"?: null | bool | number | string | [...] | close({ // 'Azure DevOps' Service Connection "azureDevOpsServiceConnection"?: string // Feeds "artifactsFeeds"?: string // Credentials for repositories outside this // organization/collection "mavenServiceConnections"?: string }) ... }, { // Azure App Configuration Export // // Export key-values from Azure App Configuration to task // variables in your build or deployment pipelines "task"!: null | bool | number | =~"^AzureAppConfigurationExport@10$" | [...] | { ... } // Azure App Configuration Export inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription "azureSubscription"!: string // App Configuration Endpoint "AppConfigurationEndpoint"!: string // Selection Mode "SelectionMode"?: "Default" | "Snapshot" // Key Filter "KeyFilter"?: string // Label "Label"?: string // Snapshot name "SnapshotName"?: string // Trim Key Prefix "TrimKeyPrefix"?: string // Suppress warning for overridden keys "SuppressWarningForOverriddenKeys"?: bool // Treat key vault resolution errors as warnings "TreatKeyVaultErrorsAsWarning"?: bool }) ... }, { // Review App // // Use this task under deploy phase provider to create a resource // dynamically "task"!: null | bool | number | =~"^ReviewApp@0$" | [...] | { ... } // Review App inputs "inputs"!: null | bool | number | string | [...] | close({ // Resource name "resourceName"!: string // Environment name "baseEnvironmentName"?: string // Review Resource Name "reviewResourceName"?: string }) ... }, { // Java tool installer // // Acquire a specific version of Java from a user-supplied Azure // blob or the tool cache and sets JAVA_HOME "task"!: null | bool | number | =~"^JavaToolInstaller@0$" | [...] | { ... } // Java tool installer inputs "inputs"!: null | bool | number | string | [...] | close({ // JDK version "versionSpec"?: string // JDK architecture "jdkArchitectureOption"!: "x64" | "x86" // JDK source "jdkSourceOption"!: "AzureStorage" | "LocalDirectory" | "PreInstalled" // JDK file "jdkFile"?: string // Azure subscription "azureResourceManagerEndpoint"?: string // Storage account name "azureStorageAccountName"?: string // Container name "azureContainerName"?: string // Common virtual path "azureCommonVirtualFile"?: string // Destination directory "jdkDestinationDirectory"?: string // Resource Group name "azureResourceGroupName"?: string // Clean destination directory "cleanDestinationDirectory"?: bool // Create directory for extracting "createExtractDirectory"?: bool }) ... }, { // Java tool installer // // Acquire a specific version of Java from a user-supplied Azure // blob or the tool cache and sets JAVA_HOME "task"!: null | bool | number | =~"^JavaToolInstaller@1$" | [...] | { ... } // Java tool installer inputs "inputs"!: null | bool | number | string | [...] | close({ // JDK version "versionSpec"?: string // JDK architecture "jdkArchitectureOption"!: "x64" | "x86" // JDK source "jdkSourceOption"!: "AzureStorage" | "LocalDirectory" | "PreInstalled" // JDK file "jdkFile"?: string // Azure subscription "azureResourceManagerEndpoint"?: string // Storage account name "azureStorageAccountName"?: string // Container name "azureContainerName"?: string // Common virtual path "azureCommonVirtualFile"?: string // Destination directory "jdkDestinationDirectory"?: string // Resource Group name "azureResourceGroupName"?: string // Clean destination directory "cleanDestinationDirectory"?: bool // Create directory for extracting "createExtractDirectory"?: bool }) ... }, { // Chef // // Deploy to Chef environments by editing environment attributes "task"!: null | bool | number | =~"^Chef@1$" | [...] | { ... } // Chef inputs "inputs"!: null | bool | number | string | [...] | close({ // Chef Service Connection "connectedServiceName"!: string // Environment "Environment"!: string // Environment Attributes "Attributes"!: string // Wait Time "chefWaitTime"?: string }) ... }, { // Azure Functions Deploy // // Update a function app with .NET, Python, JavaScript, // PowerShell, Java based web applications "task"!: null | bool | number | =~"^AzureFunctionApp@2$" | [...] | { ... } // Azure Functions Deploy inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure Resource Manager connection "connectedServiceNameARM"!: string // App type "appType"!: "functionApp" | "functionAppLinux" // Is Function App on Flex Consumption Plan "isFlexConsumption"?: bool // Azure Functions App name "appName"!: string // Deploy to Slot or App Service Environment "deployToSlotOrASE"?: bool // Resource group "resourceGroupName"?: string // Slot "slotName"?: string // Package or folder "package"?: string // Runtime stack "runtimeStack"?: "DOTNET|6.0" | "DOTNET-ISOLATED|6.0" | "DOTNET-ISOLATED|7.0" | "DOTNET-ISOLATED|8.0" | "DOTNET-ISOLATED|9.0" | "JAVA|8" | "JAVA|11" | "JAVA|17" | "JAVA|21" | "NODE|14" | "NODE|16" | "NODE|18" | "NODE|20" | "PYTHON|3.8" | "PYTHON|3.9" | "PYTHON|3.10" | "PYTHON|3.11" // App settings "appSettings"?: string // Deployment method "deploymentMethod"?: "auto" | "zipDeploy" | "runFromPackage" }) ... }, { // Azure Functions // // Update a function app with .NET, Python, JavaScript, // PowerShell, Java based web applications "task"!: null | bool | number | =~"^AzureFunctionApp@1$" | [...] | { ... } // Azure Functions inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription "azureSubscription"!: string // App type "appType"!: "functionApp" | "functionAppLinux" // Azure Functions App name "appName"!: string // Deploy to Slot or App Service Environment "deployToSlotOrASE"?: bool // Resource group "resourceGroupName"?: string // Slot "slotName"?: string // Package or folder "package"?: string // Runtime stack "runtimeStack"?: "DOTNET|6.0" | "DOTNET-ISOLATED|6.0" | "DOTNET-ISOLATED|7.0" | "DOTNET-ISOLATED|8.0" | "DOTNET-ISOLATED|9.0" | "JAVA|8" | "JAVA|11" | "JAVA|17" | "JAVA|21" | "NODE|14" | "NODE|16" | "NODE|18" | "NODE|20" | "PYTHON|3.8" | "PYTHON|3.9" | "PYTHON|3.10" | "PYTHON|3.11" // Startup command "startUpCommand"?: string // Generate web.config parameters for Python, Node.js, Go and Java // apps "customWebConfig"?: string // App settings "appSettings"?: string // Configuration settings "configurationStrings"?: string // Deployment method "deploymentMethod"?: "auto" | "zipDeploy" | "runFromPackage" }) ... }, { // Azure Functions Deploy // // Update a function app with .NET, Python, JavaScript, // PowerShell, Java based web applications "task"!: null | bool | number | =~"^AzureFunctionApp@2$" | [...] | { ... } // Azure Functions Deploy inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure Resource Manager connection "connectedServiceNameARM"!: string // App type "appType"!: "functionApp" | "functionAppLinux" // Is Function App on Flex Consumption Plan "isFlexConsumption"?: bool // Azure Functions App name "appName"!: string // Deploy to Slot or App Service Environment "deployToSlotOrASE"?: bool // Resource group "resourceGroupName"?: string // Slot "slotName"?: string // Package or folder "package"?: string // Runtime stack "runtimeStack"?: "DOTNET|6.0" | "DOTNET-ISOLATED|6.0" | "DOTNET-ISOLATED|7.0" | "DOTNET-ISOLATED|8.0" | "JAVA|8" | "JAVA|11" | "JAVA|17" | "JAVA|21" | "NODE|14" | "NODE|16" | "NODE|18" | "NODE|20" | "PYTHON|3.8" | "PYTHON|3.9" | "PYTHON|3.10" | "PYTHON|3.11" // App settings "appSettings"?: string // Deployment method "deploymentMethod"?: "auto" | "zipDeploy" | "runFromPackage" }) ... }, { // npm authenticate (for task runners) // // Don't use this task if you're also using the npm task. Provides // npm credentials to an .npmrc file in your repository for the // scope of the build. This enables npm task runners like gulp // and Grunt to authenticate with private registries. "task"!: null | bool | number | =~"^npmAuthenticate@0$" | [...] | { ... } // npm authenticate (for task runners) inputs "inputs"!: null | bool | number | string | [...] | close({ // 'Azure DevOps' Service Connection "azureDevOpsServiceConnection"?: string // Azure Artifacts URL "feedUrl"?: string // .npmrc file to authenticate "workingFile"!: string // Credentials for registries outside this organization/collection "customEndpoint"?: string }) ... }, { // MSBuild // // Build with MSBuild "task"!: null | bool | number | =~"^MSBuild@1$" | [...] | { ... } // MSBuild inputs "inputs"?: null | bool | number | string | [...] | close({ // Project "solution"?: string // MSBuild "msbuildLocationMethod"?: "version" | "location" // MSBuild Version "msbuildVersion"?: "latest" | "17.0" | "16.0" | "15.0" | "14.0" | "12.0" | "4.0" // MSBuild Architecture "msbuildArchitecture"?: "x86" | "x64" // Path to MSBuild "msbuildLocation"?: string // Platform "platform"?: string // Configuration "configuration"?: string // MSBuild Arguments "msbuildArguments"?: string // Clean "clean"?: bool // Build in Parallel "maximumCpuCount"?: bool // Restore NuGet Packages "restoreNugetPackages"?: bool // Record Project Details "logProjectEvents"?: bool // Create Log File "createLogFile"?: bool // Log File Verbosity "logFileVerbosity"?: "quiet" | "minimal" | "normal" | "detailed" | "diagnostic" }) ... }, { // Build machine image // // Build a machine image using Packer, which may be used for Azure // Virtual machine scale set deployment "task"!: null | bool | number | =~"^PackerBuild@0$" | [...] | { ... } // Build machine image inputs "inputs"!: null | bool | number | string | [...] | close({ // Packer template "templateType"?: "builtin" | "custom" // Packer template location "customTemplateLocation"?: string // Template parameters "customTemplateParameters"?: string // Azure subscription "ConnectedServiceName"!: string // Storage location "location"!: string // Storage account "storageAccountName"!: string // Resource group "azureResourceGroup"!: string // Base image source "baseImageSource"?: "default" | "customVhd" // Base image "baseImage"?: "MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:windows" | "MicrosoftWindowsServer:WindowsServer:2016-Datacenter:windows" | "MicrosoftWindowsServer:WindowsServer:2012-Datacenter:windows" | "MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:windows" | "Canonical:UbuntuServer:14.04.4-LTS:linux" | "Canonical:UbuntuServer:16.04-LTS:linux" | "RedHat:RHEL:7.2:linux" | "RedHat:RHEL:6.8:linux" | "OpenLogic:CentOS:7.2:linux" | "OpenLogic:CentOS:6.8:linux" | "credativ:Debian:8:linux" | "credativ:Debian:7:linux" | "SUSE:openSUSE-Leap:42.2:linux" | "SUSE:SLES:12-SP2:linux" | "SUSE:SLES:11-SP4:linux" // Base image URL "customImageUrl"?: string // Base image OS "customImageOSType"?: "windows" | "linux" // Deployment Package "packagePath"!: string // Deployment script "deployScriptPath"!: string // Deployment script arguments "deployScriptArguments"?: string // Additional Builder parameters "additionalBuilderParameters"?: string // Skip temporary file cleanup during deprovision "skipTempFileCleanupDuringVMDeprovision"?: bool // Image URL "imageUri"?: string }) ... }, { // Build machine image // // Build a machine image using Packer, which may be used for Azure // Virtual machine scale set deployment "task"!: null | bool | number | =~"^PackerBuild@1$" | [...] | { ... } // Build machine image inputs "inputs"!: null | bool | number | string | [...] | close({ // Packer template "templateType"?: "builtin" | "custom" // Packer template location "customTemplateLocation"?: string // Template parameters "customTemplateParameters"?: string // Azure subscription "ConnectedServiceName"!: string // Managed VM disk image "isManagedImage"?: bool // Managed VM Disk Image Name "managedImageName"?: string // Storage location "location"!: string // Storage account "storageAccountName"!: string // Resource group "azureResourceGroup"!: string // Base image source "baseImageSource"?: "default" | "customVhd" // Base image "baseImage"?: "MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:windows" | "MicrosoftWindowsServer:WindowsServer:2016-Datacenter:windows" | "MicrosoftWindowsServer:WindowsServer:2012-Datacenter:windows" | "MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:windows" | "Canonical:UbuntuServer:14.04.4-LTS:linux" | "Canonical:UbuntuServer:16.04-LTS:linux" | "Canonical:UbuntuServer:18.04-LTS:linux" | "RedHat:RHEL:7.2:linux" | "RedHat:RHEL:6.8:linux" | "OpenLogic:CentOS:7.2:linux" | "OpenLogic:CentOS:6.8:linux" | "credativ:Debian:8:linux" | "credativ:Debian:7:linux" | "SUSE:openSUSE-Leap:42.2:linux" | "SUSE:SLES:12-SP2:linux" | "SUSE:SLES:11-SP4:linux" // Base image URL "customImageUrl"?: string // Base image OS "customImageOSType"?: "windows" | "linux" // Deployment Package "packagePath"!: string // Deployment script "deployScriptPath"!: string // Deployment script arguments "deployScriptArguments"?: string // Delete temp folder "canDeleteTempFolder"?: bool // Additional Builder parameters "additionalBuilderParameters"?: string // Skip temporary file cleanup during deprovision "skipTempFileCleanupDuringVMDeprovision"?: bool // Packer Version "packerVersion"?: string // Image URL or Name "imageUri"?: string // Azure Resource Id "imageId"?: string }) ... }, { // NuGet packager // // Deprecated: use the “NuGet” task instead. It works with the new // Tool Installer framework so you can easily use new versions of // NuGet without waiting for a task update, provides better // support for authenticated feeds outside this // organization/collection, and uses NuGet 4 by default. "task"!: null | bool | number | =~"^NuGetPackager@0$" | [...] | { ... } // NuGet packager inputs "inputs"?: null | bool | number | string | [...] | close({ // Path to csproj or nuspec file(s) to pack "searchPattern"?: string // Package Folder "outputdir"?: string // Include referenced projects "includeReferencedProjects"?: bool // Automatic package versioning "versionByBuild"?: "false" | "byPrereleaseNumber" | "byEnvVar" | "true" // Environment variable "versionEnvVar"?: string // Major "requestedMajorVersion"?: string // Minor "requestedMinorVersion"?: string // Patch "requestedPatchVersion"?: string // Configuration to Package "configurationToPack"?: string // Additional build properties "buildProperties"?: string // NuGet Arguments "nuGetAdditionalArgs"?: string // Path to NuGet.exe "nuGetPath"?: string }) ... }, { // Azure App Configuration Snapshot // // Create a configuration snapshot in Azure App Configuration // through build or deployment pipelines "task"!: null | bool | number | =~"^AzureAppConfigurationSnapshot@1$" | [...] | { ... } // Azure App Configuration Snapshot inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription "azureSubscription"!: string // App Configuration Endpoint "AppConfigurationEndpoint"!: string // Snapshot Name "SnapshotName"!: string // Composition Type "CompositionType"?: "key" | "key_label" // Filters for key-values "Filters"!: string // Days to retain archived snapshot "RetentionPeriod"?: int // Tags "Tags"?: string }) ... }, { // Duffle tool installer // // Install a specified version of Duffle for installing and // managing CNAB bundles "task"!: null | bool | number | =~"^DuffleInstaller@0$" | [...] | { ... } // Duffle tool installer inputs "inputs"?: null | bool | number | string | [...] | close({ // Version "version"?: string // Check for latest version "checkLatestVersion"?: bool }) ... }, { // Update Service Fabric App Versions // // Automatically updates the versions of a packaged Service Fabric // application. "task"!: null | bool | number | =~"^ServiceFabricUpdateAppVersions@1$" | [...] | { ... } // Update Service Fabric App Versions inputs "inputs"!: null | bool | number | string | [...] | close({ // Application Package "applicationPackagePath"!: string // Version Value "versionSuffix"?: string // Version Behavior "versionBehavior"?: "Append" | "Replace" // Update only if changed "updateOnlyChanged"?: bool // Package Artifact Name "pkgArtifactName"?: string // Log all changes "logAllChanges"?: bool // Compare against "compareType"?: "LastSuccessful" | "Specific" // Build Number "buildNumber"?: string }) ... }, { // Update Service Fabric manifests // // Automatically update portions of application and service // manifests in a packaged Azure Service Fabric application "task"!: null | bool | number | =~"^ServiceFabricUpdateManifests@2$" | [...] | { ... } // Update Service Fabric manifests inputs "inputs"!: null | bool | number | string | [...] | close({ // Update Type "updateType"?: "Manifest versions" | "Docker image settings" // Application Package "applicationPackagePath"!: string // Version Value "versionSuffix"?: string // Version Behavior "versionBehavior"?: "Append" | "Replace" // Update only if changed "updateOnlyChanged"?: bool // Package Artifact Name "pkgArtifactName"?: string // Log all changes "logAllChanges"?: bool // Compare against "compareType"?: "LastSuccessful" | "Specific" // Build Number "buildNumber"?: string // Overwrite Existing Package Artifact "overwriteExistingPkgArtifact"?: bool // Image Names Path "imageNamesPath"?: string // Image Digests Path "imageDigestsPath"?: string }) ... }, { // Query Azure Monitor alerts // // Observe the configured Azure Monitor rules for active alerts "task"!: null | bool | number | =~"^AzureMonitor@1$" | [...] | { ... } // Query Azure Monitor alerts inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription "connectedServiceNameARM"!: string // Resource group "ResourceGroupName"!: string // Filter type "filterType"?: "resource" | "alertrule" | "none" // Resource "resource"?: string // Alert rule "alertRule"?: string // Severity "severity"?: "Sev0" | "Sev1" | "Sev2" | "Sev3" | "Sev4" // Time range "timeRange"?: "1h" | "1d" | "7d" | "30d" // Alert state "alertState"?: "New" | "Acknowledged" | "Closed" // Monitor condition "monitorCondition"?: "Fired " | "Resolved" }) ... }, { // Query Classic Azure Monitor alerts // // Observe the configured classic Azure Monitor rules for active // alerts "task"!: null | bool | number | =~"^AzureMonitor@0$" | [...] | { ... } // Query Classic Azure Monitor alerts inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription "connectedServiceNameARM"!: string // Resource group "ResourceGroupName"!: string // Resource type "ResourceType"?: "Microsoft.Insights/components" | "Microsoft.Web/sites" | "Microsoft.Storage/storageAccounts" | "Microsoft.Compute/virtualMachines" // Resource name "resourceName"!: string // Alert rules "alertRules"!: string }) ... }, { // Notation // // Azure Pipepine Task for setting up Notation CLI, sign and // verify with Notation "task"!: null | bool | number | =~"^Notation@0$" | [...] | { ... } // Notation inputs "inputs"?: null | bool | number | string | [...] | close({ // Command to run "command"?: "install" | "sign" | "verify" // Custom Version "isCustomVersion"?: bool // Version "version"?: string // Download URL "url"?: string // Checksum "checksum"?: string // Artifact references "artifactRefs"?: string // Signature Format "signatureFormat"?: "cose" | "jws" // [Experimental] Allow Referrers API "allowReferrersAPI"?: bool // Plugin "plugin"?: "azureKeyVault" // Plugin Version "akvPluginVersion"?: string // Azure Key Vault service connection "azurekvServiceConection"?: string // Key ID "keyid"?: string // Certificate Bundle File Path "caCertBundle"?: string // Self-signed Certificate "selfSigned"?: bool // Timestamp URL "timestampURL"?: string // Timestamp Root Certificate "timestampRootCert"?: string // Trust Policy File Path "trustPolicy"?: string // Trust Store Folder Path "trustStore"?: string }) ... }, { // Azure Network Load Balancer // // Connect or disconnect an Azure virtual machine's network // interface to a Load Balancer's back end address pool "task"!: null | bool | number | =~"^AzureNLBManagement@1$" | [...] | { ... } // Azure Network Load Balancer inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure Subscription "azureSubscription"!: string // Resource Group "ResourceGroupName"!: string // Load Balancer Name "LoadBalancer"!: string // Action "Action"!: "Disconnect" | "Connect" }) ... }, { // Docker Compose // // Build, push or run multi-container Docker applications. Task // can be used with Docker or Azure Container registry. "task"!: null | bool | number | =~"^DockerCompose@0$" | [...] | { ... } // Docker Compose inputs "inputs"?: null | bool | number | string | [...] | close({ // Container Registry Type "containerregistrytype"?: "Azure Container Registry" | "Container Registry" // Docker Registry Service Connection "dockerRegistryEndpoint"?: string // Azure subscription "azureSubscription"?: string // Azure Container Registry "azureContainerRegistry"?: string // Docker Compose File "dockerComposeFile"?: string // Additional Docker Compose Files "additionalDockerComposeFiles"?: string // Environment Variables "dockerComposeFileArgs"?: string // Project Name "projectName"?: string // Qualify Image Names "qualifyImageNames"?: bool // Action "action"?: "Build services" | "Push services" | "Run services" | "Run a specific service" | "Lock services" | "Write service image digests" | "Combine configuration" | "Run a Docker Compose command" // Additional Image Tags "additionalImageTags"?: string // Include Source Tags "includeSourceTags"?: bool // Include Latest Tag "includeLatestTag"?: bool // Build Images "buildImages"?: bool // Service Name "serviceName"?: string // Container Name "containerName"?: string // Ports "ports"?: string // Working Directory "workingDirectory"?: string // Entry Point Override "entrypoint"?: string // Command "containerCommand"?: string // Run in Background "detached"?: bool // Abort on Container Exit "abortOnContainerExit"?: bool // Image Digest Compose File "imageDigestComposeFile"?: string // Remove Build Options "removeBuildOptions"?: bool // Base Resolve Directory "baseResolveDirectory"?: string // Output Docker Compose File "outputDockerComposeFile"?: string // Command "dockerComposeCommand"?: string // Arguments "arguments"?: string // Docker Host Service Connection "dockerHostEndpoint"?: string // No-op if no Docker Compose File "nopIfNoDockerComposeFile"?: bool // Require Additional Docker Compose Files "requireAdditionalDockerComposeFiles"?: bool // Working Directory "currentWorkingDirectory"?: string // Docker Compose executable Path "dockerComposePath"?: string }) ... }, { // Docker Compose // // Build, push or run multi-container Docker applications. Task // can be used with Docker or Azure Container registry. "task"!: null | bool | number | =~"^DockerCompose@1$" | [...] | { ... } // Docker Compose inputs "inputs"?: null | bool | number | string | [...] | close({ // Container Registry Type "containerregistrytype"?: "Azure Container Registry" | "Container Registry" // Docker Registry Service Connection "dockerRegistryEndpoint"?: string // Azure subscription "azureSubscription"?: string // Azure Container Registry "azureContainerRegistry"?: string // Docker Compose File "dockerComposeFile"?: string // Additional Docker Compose Files "additionalDockerComposeFiles"?: string // Environment Variables "dockerComposeFileArgs"?: string // Project Name "projectName"?: string // Qualify Image Names "qualifyImageNames"?: bool // Action "action"?: "Build services" | "Push services" | "Run services" | "Run a specific service" | "Lock services" | "Write service image digests" | "Combine configuration" | "Run a Docker Compose command" // Additional Image Tags "additionalImageTags"?: string // Include Source Tags "includeSourceTags"?: bool // Include Latest Tag "includeLatestTag"?: bool // Build Images "buildImages"?: bool // Service Name "serviceName"?: string // Container Name "containerName"?: string // Ports "ports"?: string // Working Directory "workingDirectory"?: string // Entry Point Override "entrypoint"?: string // Command "containerCommand"?: string // Run in Background "detached"?: bool // Abort on Container Exit "abortOnContainerExit"?: bool // Image Digest Compose File "imageDigestComposeFile"?: string // Remove Build Options "removeBuildOptions"?: bool // Base Resolve Directory "baseResolveDirectory"?: string // Output Docker Compose File "outputDockerComposeFile"?: string // Command "dockerComposeCommand"?: string // Arguments "arguments"?: string // Docker Host Service Connection "dockerHostEndpoint"?: string // No-op if no Docker Compose File "nopIfNoDockerComposeFile"?: bool // Require Additional Docker Compose Files "requireAdditionalDockerComposeFiles"?: bool // Working Directory "currentWorkingDirectory"?: string // Docker Compose executable Path "dockerComposePath"?: string }) ... }, { // Azure Monitor alerts (Deprecated) // // Configure alerts on available metrics for an Azure resource // (Deprecated) "task"!: null | bool | number | =~"^AzureMonitorAlerts@0$" | [...] | { ... } // Azure Monitor alerts (Deprecated) inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure Subscription "azureSubscription"!: string // Resource Group "ResourceGroupName"!: string // Resource Type "ResourceType"?: "Microsoft.Insights/components" | "Microsoft.Web/sites" | "Microsoft.Storage/storageAccounts" | "Microsoft.Compute/virtualMachines" // Resource name "ResourceName"!: string // Alert rules "AlertRules"!: string // Subscription owners, contributors and readers "NotifyServiceOwners"?: bool // Additional administrator emails "NotifyEmails"?: string }) ... }, { // Xamarin Test Cloud // // [Deprecated] Test mobile apps with Xamarin Test Cloud using // Xamarin.UITest. Instead, use the 'App Center test' task. "task"!: null | bool | number | =~"^XamarinTestCloud@1$" | [...] | { ... } // Xamarin Test Cloud inputs "inputs"!: null | bool | number | string | [...] | close({ // App file "appFile"!: string // dSYM file (iOS only) "dsymFile"?: string // Team API key "teamApiKey"!: string // User email "email"!: string // Devices "devices"!: string // Series "series"?: string // Test assembly directory "testAssemblyDirectory"!: string // Parallelization "parallelizationOption"?: "none" | "--fixture-chunk" | "--test-chunk" // System language "localeOption"?: "da_DK" | "nl_NL" | "en_GB" | "en_US" | "fr_FR" | "de_DE" | "ja_JP" | "ru_RU" | "es_MX" | "es_ES" | "user" // Other locale "userDefinedLocale"?: string // test-cloud.exe location "testCloudFile"?: string // Optional arguments "optionalArgs"?: string // Publish results to Azure Pipelines "publishNUnitResults"?: bool }) ... }, { // Service Fabric application deployment // // Deploy an Azure Service Fabric application to a cluster "task"!: null | bool | number | =~"^ServiceFabricDeploy@1$" | [...] | { ... } // Service Fabric application deployment inputs "inputs"!: null | bool | number | string | [...] | close({ // Application Package "applicationPackagePath"!: string // Cluster Service Connection "serviceConnectionName"!: string // Publish Profile "publishProfilePath"?: string // Application Parameters "applicationParameterPath"?: string // Override Application Parameters "overrideApplicationParameter"?: bool // Compress Package "compressPackage"?: bool // CopyPackageTimeoutSec "copyPackageTimeoutSec"?: string // RegisterPackageTimeoutSec "registerPackageTimeoutSec"?: string // Overwrite Behavior "overwriteBehavior"?: "Always" | "Never" | "SameAppTypeAndVersion" // Skip upgrade for same Type and Version "skipUpgradeSameTypeAndVersion"?: bool // Skip package validation "skipPackageValidation"?: bool // Use Diff Package "useDiffPackage"?: bool // Override All Publish Profile Upgrade Settings "overridePublishProfileSettings"?: bool // Upgrade the Application "isUpgrade"?: bool // Unregister Unused Versions "unregisterUnusedVersions"?: bool // Upgrade Mode "upgradeMode"?: "Monitored" | "UnmonitoredAuto" | "UnmonitoredManual" // FailureAction "FailureAction"?: "Rollback" | "Manual" // UpgradeReplicaSetCheckTimeoutSec "UpgradeReplicaSetCheckTimeoutSec"?: string // TimeoutSec "TimeoutSec"?: string // ForceRestart "ForceRestart"?: bool // HealthCheckRetryTimeoutSec "HealthCheckRetryTimeoutSec"?: string // HealthCheckWaitDurationSec "HealthCheckWaitDurationSec"?: string // HealthCheckStableDurationSec "HealthCheckStableDurationSec"?: string // UpgradeDomainTimeoutSec "UpgradeDomainTimeoutSec"?: string // ConsiderWarningAsError "ConsiderWarningAsError"?: bool // DefaultServiceTypeHealthPolicy "DefaultServiceTypeHealthPolicy"?: string // MaxPercentUnhealthyDeployedApplications "MaxPercentUnhealthyDeployedApplications"?: string // UpgradeTimeoutSec "UpgradeTimeoutSec"?: string // ServiceTypeHealthPolicyMap "ServiceTypeHealthPolicyMap"?: string // Configure Docker settings "configureDockerSettings"?: bool // Registry Credentials Source "registryCredentials"?: "AzureResourceManagerEndpoint" | "ContainerRegistryEndpoint" | "UsernamePassword" // Docker Registry Service Connection "dockerRegistryConnection"?: string // Azure subscription "azureSubscription"?: string // Registry User Name "registryUserName"?: string // Registry Password "registryPassword"?: string // Password Encrypted "passwordEncrypted"?: bool }) ... }, { // Xcode // // Build, test, or archive an Xcode workspace on macOS. Optionally // package an app. "task"!: null | bool | number | =~"^Xcode@5$" | [...] | { ... } // Xcode inputs "inputs"?: null | bool | number | string | [...] | close({ // Actions "actions"?: string // Configuration "configuration"?: string // SDK "sdk"?: string // Workspace or project path "xcWorkspacePath"?: string // Scheme "scheme"?: string // Xcode version "xcodeVersion"?: "8" | "9" | "10" | "11" | "12" | "13" | "default" | "specifyPath" // Xcode developer path "xcodeDeveloperDir"?: string // Create app package "packageApp"?: bool // Archive path "archivePath"?: string // Export path "exportPath"?: string // Export options "exportOptions"?: "auto" | "plist" | "specify" // Export method "exportMethod"?: string // Team ID "exportTeamId"?: string // Export options plist "exportOptionsPlist"?: string // Export arguments "exportArgs"?: string // Signing style "signingOption"?: "nosign" | "default" | "manual" | "auto" // Signing identity "signingIdentity"?: string // Provisioning profile UUID "provisioningProfileUuid"?: string // Provisioning profile name "provisioningProfileName"?: string // Team ID "teamId"?: string // Destination platform "destinationPlatformOption"?: "default" | "iOS" | "tvOS" | "macOS" | "custom" // Custom destination platform "destinationPlatform"?: string // Destination type "destinationTypeOption"?: "simulators" | "devices" // Simulator "destinationSimulators"?: string // Device "destinationDevices"?: string // Arguments "args"?: string // Working directory "workingDirectory"?: string // Use xcpretty "useXcpretty"?: bool // Xcpretty arguments "xcprettyArgs"?: string // Publish test results to Azure Pipelines "publishJUnitResults"?: bool // Test run title "testRunTitle"?: string }) ... }, { // Xcode Build // // Build an Xcode workspace on macOS "task"!: null | bool | number | =~"^Xcode@3$" | [...] | { ... } // Xcode Build inputs "inputs"?: null | bool | number | string | [...] | close({ // Actions "actions"?: string // Configuration "configuration"?: string // SDK "sdk"?: string // Workspace/Project Path "xcWorkspacePath"?: string // Scheme "scheme"?: string // Create App Package "packageApp"?: bool // Archive Path "archivePath"?: string // Export Path "exportPath"?: string // Export Options "exportOptions"?: "auto" | "plist" | "specify" // Export Method "exportMethod"?: string // Team ID "exportTeamId"?: string // Export Options Plist "exportOptionsPlist"?: string // Export Arguments "exportArgs"?: string // Automatic Signing "xcode8AutomaticSigning"?: bool // Team ID "teamId"?: string // Override Using "signMethod"?: "file" | "id" // Signing Identity "iosSigningIdentity"?: string // Unlock Default Keychain "unlockDefaultKeychain"?: bool // Default Keychain Password "defaultKeychainPassword"?: string // Provisioning Profile UUID "provProfileUuid"?: string // P12 Certificate File "p12"?: string // P12 Password "p12pwd"?: string // Provisioning Profile File "provProfile"?: string // Remove Profile After Build "removeProfile"?: bool // Arguments "args"?: string // Working Directory "cwd"?: string // Output Directory "outputPattern"?: string // Xcode Developer Path "xcodeDeveloperDir"?: string // Use xcpretty "useXcpretty"?: bool // Publish to VSTS/TFS "publishJUnitResults"?: bool }) ... }, { // Xcode // // Build, test, or archive an Xcode workspace on macOS. Optionally // package an app. "task"!: null | bool | number | =~"^Xcode@4$" | [...] | { ... } // Xcode inputs "inputs"?: null | bool | number | string | [...] | close({ // Actions "actions"?: string // Configuration "configuration"?: string // SDK "sdk"?: string // Workspace or project path "xcWorkspacePath"?: string // Scheme "scheme"?: string // Xcode version "xcodeVersion"?: "8" | "9" | "default" | "specifyPath" // Xcode developer path "xcodeDeveloperDir"?: string // Create app package "packageApp"?: bool // Archive path "archivePath"?: string // Export path "exportPath"?: string // Export options "exportOptions"?: "auto" | "plist" | "specify" // Export method "exportMethod"?: string // Team ID "exportTeamId"?: string // Export options plist "exportOptionsPlist"?: string // Export arguments "exportArgs"?: string // Signing style "signingOption"?: "nosign" | "default" | "manual" | "auto" // Signing identity "signingIdentity"?: string // Provisioning profile UUID "provisioningProfileUuid"?: string // Team ID "teamId"?: string // Destination platform "destinationPlatformOption"?: "default" | "iOS" | "tvOS" | "macOS" | "custom" // Custom destination platform "destinationPlatform"?: string // Destination type "destinationTypeOption"?: "simulators" | "devices" // Simulator "destinationSimulators"?: string // Device "destinationDevices"?: string // Arguments "args"?: string // Working directory "workingDirectory"?: string // Output directory "outputPattern"?: string // Use xcpretty "useXcpretty"?: bool // Publish test results to VSTS/TFS "publishJUnitResults"?: bool }) ... }, { // Xcode Build // // Build an Xcode workspace on Mac OS "task"!: null | bool | number | =~"^Xcode@2$" | [...] | { ... } // Xcode Build inputs "inputs"?: null | bool | number | string | [...] | close({ // Actions "actions"?: string // Configuration "configuration"?: string // SDK "sdk"?: string // Workspace/Project Path "xcWorkspacePath"?: string // Scheme "scheme"?: string // Create App Package "packageApp"?: bool // Create Package (IPA) using "packageTool"?: "xcrun" | "xcodebuild" // Archive Path "archivePath"?: string // Export Path "exportPath"?: string // Export Options "exportOptions"?: "auto" | "plist" | "specify" // Export Method "exportMethod"?: string // Team ID "exportTeamId"?: string // Export Options Plist "exportOptionsPlist"?: string // Automatic Signing "xcode8AutomaticSigning"?: bool // Team ID "teamId"?: string // Override Using "signMethod"?: "file" | "id" // Signing Identity "iosSigningIdentity"?: string // Unlock Default Keychain "unlockDefaultKeychain"?: bool // Default Keychain Password "defaultKeychainPassword"?: string // Provisioning Profile UUID "provProfileUuid"?: string // P12 Certificate File "p12"?: string // P12 Password "p12pwd"?: string // Provisioning Profile File "provProfile"?: string // Remove Profile After Build "removeProfile"?: bool // Arguments "args"?: string // Working Directory "cwd"?: string // Output Directory "outputPattern"?: string // Xcode Developer Path "xcodeDeveloperDir"?: string // Use xcpretty "useXcpretty"?: bool // Publish to VSTS/TFS "publishJUnitResults"?: bool // Use xctool "useXctool"?: bool // xctool Test Reporter Format "xctoolReporter"?: string }) ... }, { // NuGet publisher // // Deprecated: use the “NuGet” task instead. It works with the new // Tool Installer framework so you can easily use new versions of // NuGet without waiting for a task update, provides better // support for authenticated feeds outside this // organization/collection, and uses NuGet 4 by default. "task"!: null | bool | number | =~"^NuGetPublisher@0$" | [...] | { ... } // NuGet publisher inputs "inputs"?: null | bool | number | string | [...] | close({ // Path/Pattern to nupkg "searchPattern"?: string // Feed type "nuGetFeedType"?: "external" | "internal" // NuGet Service Connection "connectedServiceName"?: string // Internal Feed URL "feedName"?: string // NuGet Arguments "nuGetAdditionalArgs"?: string // Verbosity "verbosity"?: "-" | "Quiet" | "Normal" | "Detailed" // NuGet Version "nuGetVersion"?: "3.3.0" | "3.5.0.1829" | "4.0.0.2283" | "custom" // Path to NuGet.exe "nuGetPath"?: string // Continue if no packages match the "Path/Pattern to nupkg" "continueOnEmptyNupkgMatch"?: bool }) ... }, { // Query work items // // Execute a work item query and check the number of items // returned "task"!: null | bool | number | =~"^queryWorkItems@0$" | [...] | { ... } // Query work items inputs "inputs"!: null | bool | number | string | [...] | close({ // Query "queryId"!: string // Upper threshold "maxThreshold"?: string // Lower threshold "minThreshold"?: string }) ... }, { // Azure Web App for Containers // // Deploy containers to Azure App Service "task"!: null | bool | number | =~"^AzureWebAppContainer@1$" | [...] | { ... } // Azure Web App for Containers inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription "azureSubscription"!: string // App name "appName"!: string // Deploy to Slot or App Service Environment "deployToSlotOrASE"?: bool // Resource group "resourceGroupName"?: string // Slot "slotName"?: string // Image name "containers"?: string // Configuration File "multicontainerConfigFile"?: string // Startup command "containerCommand"?: string // App settings "appSettings"?: string // Configuration settings "configurationStrings"?: string }) ... }, { // SQL Server database deploy // // Deploy a SQL Server database using DACPAC or SQL scripts "task"!: null | bool | number | =~"^SqlDacpacDeploymentOnMachineGroup@0$" | [...] | { ... } // SQL Server database deploy inputs "inputs"?: null | bool | number | string | [...] | close({ // Deploy SQL Using "TaskType"?: "dacpac" | "sqlQuery" | "sqlInline" // DACPAC File "DacpacFile"?: string // Sql File "SqlFile"?: string // Execute within a transaction "ExecuteInTransaction"?: bool // Acquire an exclusive app lock while executing script(s) "ExclusiveLock"?: bool // App lock name "AppLockName"?: string // Inline Sql "InlineSql"?: string // Specify SQL Using "TargetMethod"?: "server" | "connectionString" | "publishProfile" // Server Name "ServerName"?: string // Database Name "DatabaseName"?: string // Authentication "AuthScheme"?: "windowsAuthentication" | "sqlServerAuthentication" // SQL User name "SqlUsername"?: string // SQL Password "SqlPassword"?: string // Connection String "ConnectionString"?: string // Publish Profile "PublishProfile"?: string // Additional Arguments "AdditionalArguments"?: string // Additional Arguments "AdditionalArgumentsSql"?: string }) ... }, { // Cache (Beta) // // Cache files between runs "task"!: null | bool | number | =~"^CacheBeta@1$" | [...] | { ... } // Cache (Beta) inputs "inputs"!: null | bool | number | string | [...] | close({ // Key "key"!: string // Path "path"!: string // Cache hit variable "cacheHitVar"?: string // Additional restore key prefixes "restoreKeys"?: string }) ... }, { // Cache (Beta) // // Cache files between runs "task"!: null | bool | number | =~"^CacheBeta@0$" | [...] | { ... } // Cache (Beta) inputs "inputs"!: null | bool | number | string | [...] | close({ // Key "key"!: string // Path "path"!: string // Cache hit variable "cacheHitVar"?: string }) ... }, { // Cache // // Cache files between runs "task"!: null | bool | number | =~"^Cache@2$" | [...] | { ... } // Cache inputs "inputs"!: null | bool | number | string | [...] | close({ // Key "key"!: string // Path "path"!: string // Cache hit variable "cacheHitVar"?: string // Additional restore key prefixes "restoreKeys"?: string }) ... }, { // CMake // // Build with the CMake cross-platform build system "task"!: null | bool | number | =~"^CMake@1$" | [...] | { ... } // CMake inputs "inputs"?: null | bool | number | string | [...] | close({ // Working Directory "workingDirectory"?: string // Arguments "cmakeArgs"?: string // Run cmake command inside shell "runInsideShell"?: bool }) ... }, { // Mobile Center Test // // Test mobile app packages with Visual Studio Mobile Center. "task"!: null | bool | number | =~"^VSMobileCenterTest@0$" | [...] | { ... } // Mobile Center Test inputs "inputs"!: null | bool | number | string | [...] | close({ // Binary Application File Path "app"!: string // Artifacts Directory "artifactsDir"?: string // Prepare Tests "enablePrepare"?: bool // Test Framework "framework"?: "appium" | "espresso" | "calabash" | "uitest" | "xcuitest" // Build Directory "appiumBuildDir"?: string // Build Directory "espressoBuildDir"?: string // Test APK Path "espressoTestApkPath"?: string // Project Directory "calabashProjectDir"?: string // Cucumber Config File "calabashConfigFile"?: string // Profile to run "calabashProfile"?: string // Skip Configuration Check "calabashSkipConfigCheck"?: bool // Build Directory "uitestBuildDir"?: string // Store File "uitestStoreFile"?: string // Store Password "uitestStorePass"?: string // Key Alias "uitestKeyAlias"?: string // Key Password "uitestKeyPass"?: string // Test Tools Directory "uitestToolsDir"?: string // Signing Information "signInfo"?: string // Build Directory "xcuitestBuildDir"?: string // Test IPA Path "xcuitestTestIpaPath"?: string // Additional Options "prepareOpts"?: string // Run Tests "enableRun"?: bool // Authentication Method "credsType"?: "serviceEndpoint" | "inputs" // Mobile Center Connection "serverEndpoint"?: string // Mobile Center Username "username"?: string // Mobile Center Password "password"?: string // App Slug "appSlug"?: string // Devices "devices"?: string // Test Series "series"?: string // dSYM Directory "dsymDir"?: string // System Language "locale"?: "da_DK" | "nl_NL" | "en_GB" | "en_US" | "fr_FR" | "de_DE" | "ja_JP" | "ru_RU" | "es_MX" | "es_ES" | "user" // Other Locale "userDefinedLocale"?: string // Addtional Options for Login "loginOpts"?: string // Additional Options for Run "runOpts"?: string // Do not wait for test result "async"?: bool // mobile-center CLI Location "cliLocationOverride"?: string // Enable Debug Output "debug"?: bool }) ... }, { // App Center test // // Test app packages with Visual Studio App Center "task"!: null | bool | number | =~"^AppCenterTest@1$" | [...] | { ... } // App Center test inputs "inputs"!: null | bool | number | string | [...] | close({ // Binary application file path "appFile"!: string // Artifacts directory "artifactsDirectory"?: string // Prepare tests "prepareTests"?: bool // Test framework "frameworkOption"?: "appium" | "espresso" | "calabash" | "uitest" | "xcuitest" // Build directory "appiumBuildDirectory"?: string // Build directory "espressoBuildDirectory"?: string // Test APK path "espressoTestApkFile"?: string // Project directory "calabashProjectDirectory"?: string // Cucumber config file "calabashConfigFile"?: string // Profile to run "calabashProfile"?: string // Skip Configuration Check "calabashSkipConfigCheck"?: bool // Build directory "uiTestBuildDirectory"?: string // Store file "uitestStorePath"?: string // Store password "uiTestStorePassword"?: string // Key alias "uitestKeyAlias"?: string // Key password "uiTestKeyPassword"?: string // Test tools directory "uiTestToolsDirectory"?: string // Signing information "signInfo"?: string // Build directory "xcUITestBuildDirectory"?: string // Test IPA path "xcUITestIpaFile"?: string // Additional options "prepareOptions"?: string // Run tests "runTests"?: bool // Authentication method "credentialsOption"?: "serviceEndpoint" | "inputs" // App Center service connection "serverEndpoint"?: string // App Center username "username"?: string // App Center password "password"?: string // App slug "appSlug"?: string // Devices "devices"?: string // Test series "series"?: string // dSYM directory "dsymDirectory"?: string // System language "localeOption"?: "da_DK" | "nl_NL" | "en_GB" | "en_US" | "fr_FR" | "de_DE" | "ja_JP" | "ru_RU" | "es_MX" | "es_ES" | "user" // Other locale "userDefinedLocale"?: string // Additional options for login "loginOptions"?: string // Additional options for run "runOptions"?: string // Do not wait for test result "skipWaitingForResults"?: bool // App Center CLI location "cliFile"?: string // Enable debug output "showDebugOutput"?: bool }) ... }, { // Download secure file // // Download a secure file to the agent machine "task"!: null | bool | number | =~"^DownloadSecureFile@1$" | [...] | { ... } // Download secure file inputs "inputs"!: null | bool | number | string | [...] | close({ // Secure File "secureFile"!: string // Retry Count "retryCount"?: string // Socket Timeout "socketTimeout"?: string }) ... }, { // Azure Container Apps Deploy // // An Azure DevOps Task to build and deploy Azure Container Apps. "task"!: null | bool | number | =~"^AzureContainerApps@0$" | [...] | { ... } // Azure Container Apps Deploy inputs "inputs"!: null | bool | number | string | [...] | close({ // Working Directory "workingDirectory"?: string // Application source path "appSourcePath"?: string // Azure Resource Manager connection "azureSubscription"!: string // Azure Container Registry name "acrName"?: string // Azure Container Registry username "acrUsername"?: string // Azure Container Registry password "acrPassword"?: string // Dockerfile path "dockerfilePath"?: string // Docker image to build "imageToBuild"?: string // Docker image to deploy "imageToDeploy"?: string // Azure Container App name "containerAppName"?: string // Azure resource group name "resourceGroup"?: string // Azure Container App environment "containerAppEnvironment"?: string // Application runtime stack "runtimeStack"?: string // Application target port "targetPort"?: string // Location of the Container App "location"?: string // Environment variables "environmentVariables"?: string // Ingress setting "ingress"?: string // YAML configuration file path "yamlConfigPath"?: string // Disable telemetry "disableTelemetry"?: bool }) ... }, { // Azure Container Apps Deploy // // An Azure DevOps Task to build and deploy Azure Container Apps. "task"!: null | bool | number | =~"^AzureContainerApps@1$" | [...] | { ... } // Azure Container Apps Deploy inputs "inputs"!: null | bool | number | string | [...] | close({ // Working Directory "workingDirectory"?: string // Application source path "appSourcePath"?: string // Azure Resource Manager connection "azureSubscription"!: string // Azure Container Registry name "acrName"?: string // Azure Container Registry username "acrUsername"?: string // Azure Container Registry password "acrPassword"?: string // Dockerfile path "dockerfilePath"?: string // Docker image to build "imageToBuild"?: string // Docker image to deploy "imageToDeploy"?: string // Azure Container App name "containerAppName"?: string // Azure resource group name "resourceGroup"?: string // Azure Container App environment "containerAppEnvironment"?: string // Application runtime stack "runtimeStack"?: string // Application target port "targetPort"?: string // Location of the Container App "location"?: string // Environment variables "environmentVariables"?: string // Ingress setting "ingress"?: string // YAML configuration file path "yamlConfigPath"?: string // Disable telemetry "disableTelemetry"?: bool }) ... }, { // Use Ruby version // // Use the specified version of Ruby from the tool cache, // optionally adding it to the PATH "task"!: null | bool | number | =~"^UseRubyVersion@0$" | [...] | { ... } // Use Ruby version inputs "inputs"?: null | bool | number | string | [...] | close({ // Version spec "versionSpec"?: string // Add to PATH "addToPath"?: bool }) ... }, { // Grunt // // Run the Grunt JavaScript task runner "task"!: null | bool | number | =~"^Grunt@0$" | [...] | { ... } // Grunt inputs "inputs"?: null | bool | number | string | [...] | close({ // Grunt File Path "gruntFile"?: string // Grunt Task(s) "targets"?: string // Arguments "arguments"?: string // Working Directory "workingDirectory"?: string // grunt-cli location "gruntCli"?: string // Publish to Azure Pipelines "publishJUnitResults"?: bool // Test Results Files "testResultsFiles"?: string // Test Run Title "testRunTitle"?: string // Enable Code Coverage "enableCodeCoverage"?: bool // Test Framework "testFramework"?: "Mocha" | "Jasmine" // Source Files "srcFiles"?: string // Test Script Files "testFiles"?: string }) ... }, { // Azure SQL Database deployment // // Deploy an Azure SQL Database using DACPAC or run scripts using // SQLCMD "task"!: null | bool | number | =~"^SqlAzureDacpacDeployment@1$" | [...] | { ... } // Azure SQL Database deployment inputs "inputs"?: null | bool | number | string | [...] | close({ // Azure Service Connection Type "azureConnectionType"?: "ConnectedServiceName" | "ConnectedServiceNameARM" // Azure Classic Subscription "azureClassicSubscription"?: string // Azure Subscription "azureSubscription"?: string // Authentication Type "AuthenticationType"?: "server" | "aadAuthenticationPassword" | "aadAuthenticationIntegrated" | "connectionString" | "servicePrincipal" // Azure SQL Server "ServerName"?: string // Database "DatabaseName"?: string // Login "SqlUsername"?: string // Password "SqlPassword"?: string // Login "aadSqlUsername"?: string // Password "aadSqlPassword"?: string // Connection String "ConnectionString"?: string // Deploy type "deployType"?: "DacpacTask" | "SqlTask" | "InlineSqlTask" // Action "DeploymentAction"?: "Publish" | "Extract" | "Export" | "Import" | "Script" | "DriftReport" | "DeployReport" // DACPAC File "DacpacFile"?: string // BACPAC File "BacpacFile"?: string // SQL Script "SqlFile"?: string // Inline SQL Script "SqlInline"?: string // Publish Profile "PublishProfile"?: string // Additional SqlPackage.exe Arguments "AdditionalArguments"?: string // Additional Invoke-Sqlcmd Arguments "SqlAdditionalArguments"?: string // Additional Invoke-Sqlcmd Arguments "InlineAdditionalArguments"?: string // Specify Firewall Rules Using "IpDetectionMethod"?: "AutoDetect" | "IPAddressRange" // Start IP Address "StartIpAddress"?: string // End IP Address "EndIpAddress"?: string // Delete Rule After Task Ends "DeleteFirewallRule"?: bool }) ... }, { // Container Structure Test // // Uses container-structure-test // (https://github.com/GoogleContainerTools/container-structure-test) // to validate the structure of an image based on four categories // of tests - command tests, file existence tests, file content // tests and metadata tests "task"!: null | bool | number | =~"^ContainerStructureTest@0$" | [...] | { ... } // Container Structure Test inputs "inputs"!: null | bool | number | string | [...] | close({ // Docker registry service connection "dockerRegistryServiceConnection"!: string // Container repository "repository"!: string // Tag "tag"?: string // Config file path "configFile"!: string // Test run title "testRunTitle"?: string // Fail task if there are test failures "failTaskOnFailedTests"?: bool }) ... }, { // [Deprecated] IIS Web App deployment // // Deploy using MSDeploy, then create/update websites and app // pools "task"!: null | bool | number | =~"^IISWebAppDeployment@1$" | [...] | { ... } // [Deprecated] IIS Web App deployment inputs "inputs"!: null | bool | number | string | [...] | close({ // Machines "EnvironmentName"!: string // Admin Login "AdminUserName"?: string // Password "AdminPassword"?: string // Protocol "WinRMProtocol"?: "Http" | "Https" // Test Certificate "TestCertificate"?: bool // Web Deploy Package "WebDeployPackage"!: string // Web Deploy Parameter File "WebDeployParamFile"?: string // Override Parameters "OverRideParams"?: string // Create or Update Website "CreateWebSite"?: bool // Website Name "WebSiteName"?: string // Physical Path "WebSitePhysicalPath"?: string // Physical Path Authentication "WebSitePhysicalPathAuth"?: "WebSiteUserPassThrough" | "WebSiteWindowsAuth" // User Name "WebSiteAuthUserName"?: string // Password "WebSiteAuthUserPassword"?: string // Add Binding "AddBinding"?: bool // Assign Duplicate Binding "AssignDuplicateBinding"?: bool // Protocol "Protocol"?: "https" | "http" // IP Address "IPAddress"?: string // Port "Port"?: string // Server Name Indication Required "ServerNameIndication"?: bool // Host Name "HostNameWithOutSNI"?: string // Host Name "HostNameWithHttp"?: string // Host Name "HostNameWithSNI"?: string // SSL Certificate Thumb Print "SSLCertThumbPrint"?: string // Create or Update Application Pool "CreateAppPool"?: bool // Name "AppPoolName"?: string // .NET Version "DotNetVersion"?: "v4.0" | "v2.0" | "No Managed Code" // Managed Pipeline Mode "PipeLineMode"?: "Integrated" | "Classic" // Identity "AppPoolIdentity"?: "ApplicationPoolIdentity" | "LocalService" | "LocalSystem" | "NetworkService" | "SpecificUser" // Username "AppPoolUsername"?: string // Password "AppPoolPassword"?: string // Additional AppCmd.exe Commands "AppCmdCommands"?: string // Deploy in Parallel "DeployInParallel"?: bool // Select Machines By "ResourceFilteringMethod"?: "machineNames" | "tags" // Deploy to Machines "MachineFilter"?: string }) ... }, { // Kubectl tool installer // // Install Kubectl on agent machine "task"!: null | bool | number | =~"^KubectlInstaller@0$" | [...] | { ... } // Kubectl tool installer inputs "inputs"?: null | bool | number | string | [...] | close({ // Kubectl Version Spec "kubectlVersion"?: string }) ... }, { // Command line // // Run a command line script using Bash on Linux and macOS and // cmd.exe on Windows "task"!: null | bool | number | =~"^CmdLine@2$" | [...] | { ... } // Command line inputs "inputs"?: null | bool | number | string | [...] | close({ // Script "script"?: string // Working Directory "workingDirectory"?: string // Fail on Standard Error "failOnStderr"?: bool }) ... }, { // Command Line // // Run a command line with arguments "task"!: null | bool | number | =~"^CmdLine@1$" | [...] | { ... } // Command Line inputs "inputs"!: null | bool | number | string | [...] | close({ // Tool "filename"!: string // Arguments "arguments"?: string // Working folder "workingFolder"?: string // Fail on Standard Error "failOnStandardError"?: bool }) ... }, { // NuGet command // // Deprecated: use the “NuGet” task instead. It works with the new // Tool Installer framework so you can easily use new versions of // NuGet without waiting for a task update, provides better // support for authenticated feeds outside this // organization/collection, and uses NuGet 4 by default. "task"!: null | bool | number | =~"^NuGet@0$" | [...] | { ... } // NuGet command inputs "inputs"!: null | bool | number | string | [...] | close({ // Command "command"!: string // Arguments "arguments"?: string }) ... }, { // Container Build // // Container Build Task "task"!: null | bool | number | =~"^ContainerBuild@0$" | [...] | { ... } // Container Build inputs "inputs"?: null | bool | number | string | [...] | close({ // Docker registry service connection "dockerRegistryServiceConnection"?: string // Container repository "repository"?: string // Dockerfile "Dockerfile"?: string // Build context "buildContext"?: string // Tags "tags"?: string }) ... }, { // NuGet Installer // // Installs or restores missing NuGet packages. Use // NuGetAuthenticate@0 task for latest capabilities. "task"!: null | bool | number | =~"^NuGetInstaller@0$" | [...] | { ... } // NuGet Installer inputs "inputs"?: null | bool | number | string | [...] | close({ // Path to solution or packages.config "solution"?: string // Path to NuGet.config "nugetConfigPath"?: string // Installation type "restoreMode"?: "restore" | "install" // Disable local cache "noCache"?: bool // NuGet arguments "nuGetRestoreArgs"?: string // Verbosity "verbosity"?: "-" | "Quiet" | "Normal" | "Detailed" // NuGet Version "nuGetVersion"?: "3.3.0" | "3.5.0.1829" | "4.0.0.2283" | "custom" // Path to NuGet.exe "nuGetPath"?: string }) ... }, { // NuGet Restore // // Restores NuGet packages in preparation for a Visual Studio // Build step. "task"!: null | bool | number | =~"^NuGetRestore@1$" | [...] | { ... } // NuGet Restore inputs "inputs"?: null | bool | number | string | [...] | close({ // Path to solution, packages.config, or project.json "solution"?: string // Feeds to use "selectOrConfig"?: "select" | "config" // Use packages from this Azure Artifacts feed "feed"?: string // Use packages from NuGet.org "includeNuGetOrg"?: bool // Path to NuGet.config "nugetConfigPath"?: string // Disable local cache "noCache"?: bool // Destination directory "packagesDirectory"?: string // Verbosity "verbosity"?: "-" | "Quiet" | "Normal" | "Detailed" }) ... }, { // NuGet // // Restore, pack, or push NuGet packages, or run a NuGet command. // Supports NuGet.org and authenticated feeds like Azure // Artifacts and MyGet. Uses NuGet.exe and works with .NET // Framework apps. For .NET Core and .NET Standard apps, use the // .NET Core task. "task"!: null | bool | number | =~"^NuGetCommand@2$" | [...] | { ... } // NuGet inputs "inputs"?: null | bool | number | string | [...] | close({ // Command "command"?: "restore" | "pack" | "push" | "custom" // Path to solution, packages.config, or project.json "restoreSolution"?: string // Feeds to use "feedsToUse"?: "select" | "config" // Use packages from this Azure Artifacts/TFS feed. Select from // the dropdown or enter [project name/]feed name. "vstsFeed"?: string // Use packages from NuGet.org "includeNuGetOrg"?: bool // Path to NuGet.config "nugetConfigPath"?: string // Credentials for feeds outside this organization/collection "externalFeedCredentials"?: string // Disable local cache "noCache"?: bool // Disable parallel processing "disableParallelProcessing"?: bool // Destination directory "restoreDirectory"?: string // Verbosity "verbosityRestore"?: "Quiet" | "Normal" | "Detailed" // Path to NuGet package(s) to publish "packagesToPush"?: string // Target feed location "nuGetFeedType"?: "internal" | "external" // Target feed "publishVstsFeed"?: string // Publish pipeline metadata "publishPackageMetadata"?: bool // Allow duplicates to be skipped "allowPackageConflicts"?: bool // NuGet server "publishFeedCredentials"?: string // Verbosity "verbosityPush"?: "Quiet" | "Normal" | "Detailed" // Path to csproj or nuspec file(s) to pack "packagesToPack"?: string // Configuration to package "configuration"?: string // Package folder "packDestination"?: string // Automatic package versioning "versioningScheme"?: "off" | "byPrereleaseNumber" | "byEnvVar" | "byBuildNumber" // Include referenced projects "includeReferencedProjects"?: bool // Environment variable "versionEnvVar"?: string // Major "majorVersion"?: string // Minor "minorVersion"?: string // Patch "patchVersion"?: string // Time zone "packTimezone"?: "utc" | "local" // Create symbols package "includeSymbols"?: bool // Tool Package "toolPackage"?: bool // Additional build properties "buildProperties"?: string // Base path "basePath"?: string // Verbosity "verbosityPack"?: "Quiet" | "Normal" | "Detailed" // Command and arguments "arguments"?: string }) ... }, { // Delay // // Delay further execution of a workflow by a fixed time "task"!: null | bool | number | =~"^Delay@1$" | [...] | { ... } // Delay inputs "inputs"?: null | bool | number | string | [...] | close({ // Delay Time (minutes) "delayForMinutes"?: string }) ... }, { // Xamarin.iOS // // Build an iOS app with Xamarin on macOS "task"!: null | bool | number | =~"^XamariniOS@1$" | [...] | { ... } // Xamarin.iOS inputs "inputs"?: null | bool | number | string | [...] | close({ // Solution "solutionFile"?: string // Configuration "configuration"?: string // Clean "clean"?: bool // Create app package "packageApp"?: bool // Build for iOS Simulator "buildForSimulator"?: bool // Run NuGet restore "runNugetRestore"?: bool // Arguments "args"?: string // Working directory "workingDirectory"?: string // Build tool "buildToolOption"?: "xbuild" | "msbuild" // Build tool path "mdtoolFile"?: string // Override using "signingOption"?: "file" | "id" // Signing identity "signingIdentity"?: string // Unlock default keychain "signingUnlockDefaultKeychain"?: bool // Default keychain password "signingDefaultKeychainPassword"?: string // Provisioning profile UUID "signingProvisioningProfileID"?: string // P12 certificate file "signingP12File"?: string // P12 password "signingP12Password"?: string // Provisioning profile file "signingProvisioningProfileFile"?: string // Remove profile after build "signingRemoveProfile"?: bool }) ... }, { // Xamarin.iOS // // Build an iOS app with Xamarin on macOS "task"!: null | bool | number | =~"^XamariniOS@2$" | [...] | { ... } // Xamarin.iOS inputs "inputs"?: null | bool | number | string | [...] | close({ // Solution "solutionFile"?: string // Configuration "configuration"?: string // Clean "clean"?: bool // Create app package "packageApp"?: bool // Build for iOS Simulator "buildForSimulator"?: bool // Run NuGet restore "runNugetRestore"?: bool // Arguments "args"?: string // Working directory "workingDirectory"?: string // Build tool path "mdtoolFile"?: string // Signing identity "signingIdentity"?: string // Provisioning profile UUID "signingProvisioningProfileID"?: string }) ... }, { // Publish test results // // Publish test results to Azure Pipelines "task"!: null | bool | number | =~"^PublishTestResults@1$" | [...] | { ... } // Publish test results inputs "inputs"?: null | bool | number | string | [...] | close({ // Test Result Format "testRunner"?: "JUnit" | "NUnit" | "VSTest" | "XUnit" // Test Results Files "testResultsFiles"?: string // Merge Test Results "mergeTestResults"?: bool // Test Run Title "testRunTitle"?: string // Platform "platform"?: string // Configuration "configuration"?: string // Upload Test Attachments "publishRunAttachments"?: bool }) ... }, { // Publish Test Results // // Publish test results to Azure Pipelines "task"!: null | bool | number | =~"^PublishTestResults@2$" | [...] | { ... } // Publish Test Results inputs "inputs"?: null | bool | number | string | [...] | close({ // Test result format "testResultsFormat"?: "JUnit" | "NUnit" | "VSTest" | "XUnit" | "CTest" // Test results files "testResultsFiles"?: string // Search folder "searchFolder"?: string // Merge test results "mergeTestResults"?: bool // Fail if there are test failures "failTaskOnFailedTests"?: bool // Fail if there is failure in publishing test results "failTaskOnFailureToPublishResults"?: bool // Fail if no result files are found "failTaskOnMissingResultsFile"?: bool // Test run title "testRunTitle"?: string // Build Platform "buildPlatform"?: string // Build Configuration "buildConfiguration"?: string // Upload test results files "publishRunAttachments"?: bool }) ... }, { // Publish test results // // Publish test results to Azure Pipelines "task"!: null | bool | number | =~"^PublishTestResults@1$" | [...] | { ... } // Publish test results inputs "inputs"?: null | bool | number | string | [...] | close({ // Test Result Format "testRunner"?: "JUnit" | "NUnit" | "VSTest" | "XUnit" // Test Results Files "testResultsFiles"?: string // Merge Test Results "mergeTestResults"?: bool // Test Run Title "testRunTitle"?: string // Platform "platform"?: string // Configuration "configuration"?: string // Upload Test Attachments "publishRunAttachments"?: bool }) ... }, { // Azure file copy // // Copy files to Azure Blob Storage or virtual machines "task"!: null | bool | number | =~"^AzureFileCopy@6$" | [...] | { ... } // Azure file copy inputs "inputs"!: null | bool | number | string | [...] | close({ // Source "SourcePath"!: string // Azure Subscription "azureSubscription"!: string // Destination Type "Destination"!: "AzureBlob" | "AzureVMs" // RM Storage Account "storage"!: string // Container Name "ContainerName"?: string // Blob Prefix "BlobPrefix"?: string // Resource Group "resourceGroup"?: string // Select Machines By "ResourceFilteringMethod"?: "machineNames" | "tags" // Filter Criteria "MachineNames"?: string // Admin Login "vmsAdminUserName"?: string // Password "vmsAdminPassword"?: string // Destination Folder "TargetPath"?: string // Optional Arguments (for uploading files to blob) "AdditionalArgumentsForBlobCopy"?: string // Optional Arguments (for downloading files to VM) "AdditionalArgumentsForVMCopy"?: string // Enable Copy Prerequisites "enableCopyPrerequisites"?: bool // Copy in Parallel "CopyFilesInParallel"?: bool // Clean Target "CleanTargetBeforeCopy"?: bool // Test Certificate "skipCACheck"?: bool }) ... }, { // Azure file copy // // Copy files to Azure Blob Storage or virtual machines "task"!: null | bool | number | =~"^AzureFileCopy@4$" | [...] | { ... } // Azure file copy inputs "inputs"!: null | bool | number | string | [...] | close({ // Source "SourcePath"!: string // Azure Subscription "azureSubscription"!: string // Destination Type "Destination"!: "AzureBlob" | "AzureVMs" // RM Storage Account "storage"!: string // Container Name "ContainerName"?: string // Blob Prefix "BlobPrefix"?: string // Resource Group "resourceGroup"?: string // Select Machines By "ResourceFilteringMethod"?: "machineNames" | "tags" // Filter Criteria "MachineNames"?: string // Admin Login "vmsAdminUserName"?: string // Password "vmsAdminPassword"?: string // Destination Folder "TargetPath"?: string // Optional Arguments (for uploading files to blob) "AdditionalArgumentsForBlobCopy"?: string // Optional Arguments (for downloading files to VM) "AdditionalArgumentsForVMCopy"?: string // SAS Token Expiration Period In Minutes "sasTokenTimeOutInMinutes"?: string // Enable Copy Prerequisites "enableCopyPrerequisites"?: bool // Copy in Parallel "CopyFilesInParallel"?: bool // Clean Target "CleanTargetBeforeCopy"?: bool // Test Certificate "skipCACheck"?: bool }) ... }, { // Azure file copy // // Copy files to Azure Blob Storage or virtual machines "task"!: null | bool | number | =~"^AzureFileCopy@5$" | [...] | { ... } // Azure file copy inputs "inputs"!: null | bool | number | string | [...] | close({ // Source "SourcePath"!: string // Azure Subscription "azureSubscription"!: string // Destination Type "Destination"!: "AzureBlob" | "AzureVMs" // RM Storage Account "storage"!: string // Container Name "ContainerName"?: string // Blob Prefix "BlobPrefix"?: string // Resource Group "resourceGroup"?: string // Select Machines By "ResourceFilteringMethod"?: "machineNames" | "tags" // Filter Criteria "MachineNames"?: string // Admin Login "vmsAdminUserName"?: string // Password "vmsAdminPassword"?: string // Destination Folder "TargetPath"?: string // Optional Arguments (for uploading files to blob) "AdditionalArgumentsForBlobCopy"?: string // Optional Arguments (for downloading files to VM) "AdditionalArgumentsForVMCopy"?: string // SAS Token Expiration Period In Minutes "sasTokenTimeOutInMinutes"?: string // Enable Copy Prerequisites "enableCopyPrerequisites"?: bool // Copy in Parallel "CopyFilesInParallel"?: bool // Clean Target "CleanTargetBeforeCopy"?: bool // Test Certificate "skipCACheck"?: bool }) ... }, { // Azure file copy // // Copy files to Azure Blob Storage or virtual machines "task"!: null | bool | number | =~"^AzureFileCopy@2$" | [...] | { ... } // Azure file copy inputs "inputs"!: null | bool | number | string | [...] | close({ // Source "SourcePath"!: string // Azure Connection Type "azureConnectionType"?: "ConnectedServiceName" | "ConnectedServiceNameARM" // Azure Classic Subscription "azureClassicSubscription"?: string // Azure Subscription "azureSubscription"?: string // Destination Type "Destination"!: "AzureBlob" | "AzureVMs" // Classic Storage Account "classicStorage"?: string // RM Storage Account "storage"?: string // Container Name "ContainerName"?: string // Blob Prefix "BlobPrefix"?: string // Cloud Service "cloudService"?: string // Resource Group "resourceGroup"?: string // Select Machines By "ResourceFilteringMethod"?: "machineNames" | "tags" // Filter Criteria "MachineNames"?: string // Admin Login "vmsAdminUserName"?: string // Password "vmsAdminPassword"?: string // Destination Folder "TargetPath"?: string // Optional Arguments (for uploading files to blob) "AdditionalArgumentsForBlobCopy"?: string // Optional Arguments (for downloading files to VM) "AdditionalArgumentsForVMCopy"?: string // Enable Copy Prerequisites "enableCopyPrerequisites"?: bool // Copy in Parallel "CopyFilesInParallel"?: bool // Clean Target "CleanTargetBeforeCopy"?: bool // Test Certificate "skipCACheck"?: bool // Storage Container URI "outputStorageUri"?: string // Storage Container SAS Token "outputStorageContainerSasToken"?: string }) ... }, { // Azure file copy // // Copy files to Azure Blob Storage or virtual machines "task"!: null | bool | number | =~"^AzureFileCopy@3$" | [...] | { ... } // Azure file copy inputs "inputs"!: null | bool | number | string | [...] | close({ // Source "SourcePath"!: string // Azure Subscription "azureSubscription"!: string // Destination Type "Destination"!: "AzureBlob" | "AzureVMs" // RM Storage Account "storage"!: string // Container Name "ContainerName"?: string // Blob Prefix "BlobPrefix"?: string // Resource Group "resourceGroup"?: string // Select Machines By "ResourceFilteringMethod"?: "machineNames" | "tags" // Filter Criteria "MachineNames"?: string // Admin Login "vmsAdminUserName"?: string // Password "vmsAdminPassword"?: string // Destination Folder "TargetPath"?: string // Optional Arguments (for uploading files to blob) "AdditionalArgumentsForBlobCopy"?: string // Optional Arguments (for downloading files to VM) "AdditionalArgumentsForVMCopy"?: string // Enable Copy Prerequisites "enableCopyPrerequisites"?: bool // Copy in Parallel "CopyFilesInParallel"?: bool // Clean Target "CleanTargetBeforeCopy"?: bool // Test Certificate "skipCACheck"?: bool // Storage Container URI "outputStorageUri"?: string // Storage Container SAS Token "outputStorageContainerSasToken"?: string // SAS Token Expiration Period In Minutes "sasTokenTimeOutInMinutes"?: string }) ... }, { // Azure file copy // // Copy files to Azure Blob Storage or virtual machines "task"!: null | bool | number | =~"^AzureFileCopy@1$" | [...] | { ... } // Azure file copy inputs "inputs"!: null | bool | number | string | [...] | close({ // Source "SourcePath"!: string // Azure Connection Type "azureConnectionType"?: "ConnectedServiceName" | "ConnectedServiceNameARM" // Azure Classic Subscription "azureClassicSubscription"?: string // Azure Subscription "azureSubscription"?: string // Destination Type "Destination"!: "AzureBlob" | "AzureVMs" // Classic Storage Account "classicStorage"?: string // RM Storage Account "storage"?: string // Container Name "ContainerName"?: string // Blob Prefix "BlobPrefix"?: string // Cloud Service "cloudService"?: string // Resource Group "resourceGroup"?: string // Select Machines By "ResourceFilteringMethod"?: "machineNames" | "tags" // Filter Criteria "MachineNames"?: string // Admin Login "vmsAdminUserName"?: string // Password "vmsAdminPassword"?: string // Destination Folder "TargetPath"?: string // Additional Arguments "AdditionalArguments"?: string // Enable Copy Prerequisites "enableCopyPrerequisites"?: bool // Copy in Parallel "CopyFilesInParallel"?: bool // Clean Target "CleanTargetBeforeCopy"?: bool // Test Certificate "skipCACheck"?: bool // Storage Container URI "outputStorageUri"?: string // Storage Container SAS Token "outputStorageContainerSasToken"?: string }) ... }, { // Index sources and publish symbols // // Index your source code and publish symbols to a file share or // Azure Artifacts symbol server "task"!: null | bool | number | =~"^PublishSymbols@2$" | [...] | { ... } // Index sources and publish symbols inputs "inputs"?: null | bool | number | string | [...] | close({ // Azure Resource Manager connection "ConnectedServiceName"?: string // Path to symbols folder "SymbolsFolder"?: string // Search pattern "SearchPattern"?: string // Manifest "Manifest"?: string // Index sources "IndexSources"?: bool // Publish symbols "PublishSymbols"?: bool // Symbol server type "SymbolServerType"?: " " | "TeamServices" | "FileShare" // Path to publish symbols "SymbolsPath"?: string // Compress symbols "CompressSymbols"?: bool // Symbol Expiration (in days) "SymbolExpirationInDays"?: string // Symbol file formats to publish "IndexableFileFormats"?: "Default" | "Pdb" | "SourceMap" | "All" // Verbose logging "DetailedLog"?: bool // Warn if not indexed "TreatNotIndexedAsWarning"?: bool // Use NetCore client tool "UseNetCoreClientTool"?: bool // Max wait time (min) "SymbolsMaximumWaitTime"?: string // Product "SymbolsProduct"?: string // Version "SymbolsVersion"?: string // Artifact name "SymbolsArtifactName"?: string }) ... }, { // Index Sources & Publish Symbols // // Index your source code and publish symbols to a file share "task"!: null | bool | number | =~"^PublishSymbols@1$" | [...] | { ... } // Index Sources & Publish Symbols inputs "inputs"?: null | bool | number | string | [...] | close({ // Path to publish symbols "SymbolsPath"?: string // Search pattern "SearchPattern"?: string // Path to symbols folder "SymbolsFolder"?: string // Skip indexing "SkipIndexing"?: bool // Warn if not indexed "TreatNotIndexedAsWarning"?: bool // Max wait time (min) "SymbolsMaximumWaitTime"?: string // Product "SymbolsProduct"?: string // Version "SymbolsVersion"?: string // Artifact name "SymbolsArtifactName"?: string }) ... }, { // Copy files over SSH // // Copy files or build artifacts to a remote machine over SSH "task"!: null | bool | number | =~"^CopyFilesOverSSH@0$" | [...] | { ... } // Copy files over SSH inputs "inputs"!: null | bool | number | string | [...] | close({ // SSH service connection "sshEndpoint"!: string // Source folder "sourceFolder"?: string // Contents "contents"?: string // Target folder "targetFolder"?: string // Target machine running Windows "isWindowsOnTarget"?: bool // Clean target folder "cleanTargetFolder"?: bool // Remove hidden files in target folder "cleanHiddenFilesInTarget"?: bool // SSH handshake timeout "readyTimeout"?: string // Overwrite "overwrite"?: bool // Fail if no files found to copy "failOnEmptySource"?: bool // Flatten folders "flattenFolders"?: bool // Number of concurrent uploads when copying files "concurrentUploads"?: string // Delay between queueing uploads (in milliseconds) "delayBetweenUploads"?: string }) ... }, { // Gradle // // Build using a Gradle wrapper script "task"!: null | bool | number | =~"^Gradle@2$" | [...] | { ... } // Gradle inputs "inputs"?: null | bool | number | string | [...] | close({ // Gradle wrapper "gradleWrapperFile"?: string // Working directory "workingDirectory"?: string // Options "options"?: string // Tasks "tasks"?: string // Publish to Azure Pipelines "publishJUnitResults"?: bool // Test results files "testResultsFiles"?: string // Test run title "testRunTitle"?: string // Code coverage tool "codeCoverageToolOption"?: "None" | "Cobertura" | "JaCoCo" // Class files directories "codeCoverageClassFilesDirectories"?: string // Class inclusion/exclusion filters "codeCoverageClassFilter"?: string // Fail when code coverage results are missing "codeCoverageFailIfEmpty"?: bool // Gradle version >= 5.x "codeCoverageGradle5xOrHigher"?: bool // Set JAVA_HOME by "javaHomeOption"?: "JDKVersion" | "Path" // JDK version "jdkVersionOption"?: "default" | "1.17" | "1.11" | "1.10" | "1.9" | "1.8" | "1.7" | "1.6" // JDK path "jdkDirectory"?: string // JDK architecture "jdkArchitectureOption"?: "x86" | "x64" // Set GRADLE_OPTS "gradleOptions"?: string // Run SonarQube or SonarCloud Analysis "sonarQubeRunAnalysis"?: bool // SonarQube scanner for Gradle version "sqGradlePluginVersionChoice"?: "specify" | "build" // SonarQube scanner for Gradle plugin version "sonarQubeGradlePluginVersion"?: string // Run Checkstyle "checkStyleRunAnalysis"?: bool // Run FindBugs "findBugsRunAnalysis"?: bool // Run PMD "pmdRunAnalysis"?: bool // Run SpotBugs "spotBugsAnalysis"?: bool // Spotbugs plugin version "spotBugsGradlePluginVersionChoice"?: "specify" | "build" // Version number "spotbugsGradlePluginVersion"?: string }) ... }, { // Gradle // // Build using a Gradle wrapper script "task"!: null | bool | number | =~"^Gradle@3$" | [...] | { ... } // Gradle inputs "inputs"?: null | bool | number | string | [...] | close({ // Gradle wrapper "gradleWrapperFile"?: string // Working directory "workingDirectory"?: string // Options "options"?: string // Tasks "tasks"?: string // Publish to Azure Pipelines "publishJUnitResults"?: bool // Test results files "testResultsFiles"?: string // Test run title "testRunTitle"?: string // Code coverage tool "codeCoverageToolOption"?: "None" | "Cobertura" | "JaCoCo" // Class files directories "codeCoverageClassFilesDirectories"?: string // Class inclusion/exclusion filters "codeCoverageClassFilter"?: string // Fail when code coverage results are missing "codeCoverageFailIfEmpty"?: bool // Gradle version >= 5.x "codeCoverageGradle5xOrHigher"?: bool // Set JAVA_HOME by "javaHomeOption"?: "JDKVersion" | "Path" // JDK version "jdkVersionOption"?: "default" | "1.17" | "1.11" | "1.10" | "1.9" | "1.8" | "1.7" | "1.6" // JDK path "jdkDirectory"?: string // JDK architecture "jdkArchitectureOption"?: "x86" | "x64" // Set GRADLE_OPTS "gradleOptions"?: string // Run SonarQube or SonarCloud Analysis "sonarQubeRunAnalysis"?: bool // SonarQube scanner for Gradle version "sqGradlePluginVersionChoice"?: "specify" | "build" // SonarQube scanner for Gradle plugin version "sonarQubeGradlePluginVersion"?: string // Run Checkstyle "checkStyleRunAnalysis"?: bool // Run FindBugs "findBugsRunAnalysis"?: bool // Run PMD "pmdRunAnalysis"?: bool // Run SpotBugs "spotBugsAnalysis"?: bool // Spotbugs plugin version "spotBugsGradlePluginVersionChoice"?: "specify" | "build" // Version number "spotbugsGradlePluginVersion"?: string }) ... }, { // Gradle // // Build using a Gradle wrapper script "task"!: null | bool | number | =~"^Gradle@4$" | [...] | { ... } // Gradle inputs "inputs"?: null | bool | number | string | [...] | close({ // Gradle wrapper "gradleWrapperFile"?: string // Working directory "workingDirectory"?: string // Options "options"?: string // Tasks "tasks"?: string // Publish to Azure Pipelines "publishJUnitResults"?: bool // Test results files "testResultsFiles"?: string // Test run title "testRunTitle"?: string // Set JAVA_HOME by "javaHomeOption"?: "JDKVersion" | "Path" // JDK version "jdkVersionOption"?: "default" | "1.17" | "1.11" | "1.10" | "1.9" | "1.8" | "1.7" | "1.6" // JDK path "jdkDirectory"?: string // JDK architecture "jdkArchitectureOption"?: "x86" | "x64" // Set GRADLE_OPTS "gradleOptions"?: string // Run SonarQube or SonarCloud Analysis "sonarQubeRunAnalysis"?: bool // SonarQube scanner for Gradle version "sqGradlePluginVersionChoice"?: "specify" | "build" // SonarQube scanner for Gradle plugin version "sonarQubeGradlePluginVersion"?: string // Run Checkstyle "checkStyleRunAnalysis"?: bool // Run FindBugs "findBugsRunAnalysis"?: bool // Run PMD "pmdRunAnalysis"?: bool // Run SpotBugs "spotBugsAnalysis"?: bool // Spotbugs plugin version "spotBugsGradlePluginVersionChoice"?: "specify" | "build" // Version number "spotbugsGradlePluginVersion"?: string }) ... }, { // Gradle // // Build using a Gradle wrapper script "task"!: null | bool | number | =~"^Gradle@1$" | [...] | { ... } // Gradle inputs "inputs"?: null | bool | number | string | [...] | close({ // Gradle Wrapper "gradleWrapperFile"?: string // Options "options"?: string // Tasks "tasks"?: string // Working Directory "workingDirectory"?: string // Publish to TFS/Team Services "publishJUnitResults"?: bool // Test Results Files "testResultsFiles"?: string // Test Run Title "testRunTitle"?: string // Code Coverage Tool "codeCoverageToolOption"?: "None" | "Cobertura" | "JaCoCo" // Class Files Directories "codeCoverageClassFilesDirectories"?: string // Class Inclusion/Exclusion Filters "codeCoverageClassFilter"?: string // Fail When Code Coverage Results Are Missing "codeCoverageFailIfEmpty"?: bool // Set JAVA_HOME by "javaHomeOption"?: "JDKVersion" | "Path" // JDK Version "jdkVersionOption"?: "default" | "1.9" | "1.8" | "1.7" | "1.6" // JDK Path "jdkDirectory"?: string // JDK Architecture "jdkArchitectureOption"?: "x86" | "x64" // Set GRADLE_OPTS "gradleOptions"?: string // Run SonarQube Analysis "sonarQubeRunAnalysis"?: bool // SonarQube Endpoint "sonarQubeServiceEndpoint"?: string // SonarQube Project Name "sonarQubeProjectName"?: string // SonarQube Project Key "sonarQubeProjectKey"?: string // SonarQube Project Version "sonarQubeProjectVersion"?: string // SonarQube Gradle Plugin Version "sonarQubeGradlePluginVersion"?: string // The SonarQube server version is lower than 5.2 "sonarQubeSpecifyDB"?: bool // Db Connection String "sonarQubeDBUrl"?: string // Db Username "sonarQubeDBUsername"?: string // Db User Password "sonarQubeDBPassword"?: string // Include full analysis report in the build summary (SQ 5.3+) "sonarQubeIncludeFullReport"?: bool // Fail the build on quality gate failure (SQ 5.3+) "sonarQubeFailWhenQualityGateFails"?: bool // Run Checkstyle "checkStyleRunAnalysis"?: bool // Run FindBugs "findBugsRunAnalysis"?: bool // Run PMD "pmdRunAnalysis"?: bool }) ... }, { // Azure Test Plan // // Run manual and automated tests points of test plan for // different testing frameworks like Maven and Gradle for Java, // PyTest for Python and Jest for JavaScript "task"!: null | bool | number | =~"^AzureTestPlan@0$" | [...] | { ... } // Azure Test Plan inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure Resource Manager connection "azureSubscription"?: string // Test cases to be executed "testSelector"!: "manualTests" | "automatedTests" // Select tests using "testPlanOrRunSelector"?: "testPlan" | "testRun" // Test Run "testRunId"?: string // Test plan "testPlan"?: string // Test suite "testSuite"?: string // Test configuration "testConfiguration"!: string // Select Test framework language "testLanguageInput"?: "JavaMaven" | "JavaGradle" | "Python" | "JavaScriptJest" | "Playwright" // Pom file path "pomFilePath"?: string // Gradle file path "gradleFilePath"?: string // Upload test results files "publishRunAttachments"?: bool // Fail if there are test failures "failTaskOnFailedTests"?: bool // Fail if there is failure in publishing test results "failTaskOnFailureToPublishResults"?: bool // Fail if no result files are found "failTaskOnMissingResultsFile"?: bool }) ... }, { // App Center distribute // // Distribute app builds to testers and users via Visual Studio // App Center "task"!: null | bool | number | =~"^AppCenterDistribute@1$" | [...] | { ... } // App Center distribute inputs "inputs"!: null | bool | number | string | [...] | close({ // App Center service connection "serverEndpoint"!: string // App slug "appSlug"!: string // Binary file path "appFile"!: string // Symbols type "symbolsOption"?: "Apple" // Symbols path "symbolsPath"?: string // Symbols path (*.pdb) "symbolsPdbFiles"?: string // dSYM path "symbolsDsymFiles"?: string // Mapping file "symbolsMappingTxtFile"?: string // Include all items in parent folder "symbolsIncludeParentDirectory"?: bool // Create release notes "releaseNotesOption"?: "input" | "file" // Release notes "releaseNotesInput"?: string // Release notes file "releaseNotesFile"?: string // Require users to update to this release "isMandatory"?: bool // Destination ID "distributionGroupId"?: string }) ... }, { // App Center distribute // // Distribute app builds to testers and users via Visual Studio // App Center "task"!: null | bool | number | =~"^AppCenterDistribute@2$" | [...] | { ... } // App Center distribute inputs "inputs"!: null | bool | number | string | [...] | close({ // App Center service connection "serverEndpoint"!: string // App slug "appSlug"!: string // Binary file path "appFile"!: string // Symbols type "symbolsOption"?: "Apple" // Symbols path "symbolsPath"?: string // Symbols path (*.pdb) "symbolsPdbFiles"?: string // dSYM path "symbolsDsymFiles"?: string // Mapping file "symbolsMappingTxtFile"?: string // Include all items in parent folder "symbolsIncludeParentDirectory"?: bool // Create release notes "releaseNotesOption"?: "input" | "file" // Release notes "releaseNotesInput"?: string // Release notes file "releaseNotesFile"?: string // Require users to update to this release "isMandatory"?: bool // Destination IDs "distributionGroupId"?: string }) ... }, { // App Center distribute // // Distribute app builds to testers and users via Visual Studio // App Center "task"!: null | bool | number | =~"^AppCenterDistribute@3$" | [...] | { ... } // App Center distribute inputs "inputs"!: null | bool | number | string | [...] | close({ // App Center service connection "serverEndpoint"!: string // App slug "appSlug"!: string // Binary file path "appFile"!: string // Build version "buildVersion"?: string // Symbols type "symbolsOption"?: "Apple" | "Android" | "UWP" // Symbols path "symbolsPath"?: string // Symbols path (*.appxsym) "appxsymPath"?: string // dSYM path "symbolsDsymFiles"?: string // Mapping file "symbolsMappingTxtFile"?: string // Native Library File Path "nativeLibrariesPath"?: string // Include all items in parent folder "symbolsIncludeParentDirectory"?: bool // Create release notes "releaseNotesOption"?: "input" | "file" // Release notes "releaseNotesInput"?: string // Release notes file "releaseNotesFile"?: string // Require users to update to this release "isMandatory"?: bool // Release destination "destinationType"?: "groups" | "store" // Destination IDs "distributionGroupId"?: string // Destination ID "destinationStoreId"?: string // Do not notify testers. Release will still be available to // install. "isSilent"?: bool }) ... }, { // App Center Distribute // // Distribute app builds to testers and users via App Center "task"!: null | bool | number | =~"^AppCenterDistribute@0$" | [...] | { ... } // App Center Distribute inputs "inputs"!: null | bool | number | string | [...] | close({ // App Center connection "serverEndpoint"!: string // App slug "appSlug"!: string // Binary file path "appFile"!: string // Symbols type "symbolsOption"?: "Apple" // Symbols path "symbolsPath"?: string // Symbols path (*.pdb) "symbolsPdbFiles"?: string // dSYM path "symbolsDsymFiles"?: string // Mapping file "symbolsMappingTxtFile"?: string // Include all items in parent folder "symbolsIncludeParentDirectory"?: bool // Create release notes "releaseNotesOption"?: "input" | "file" // Release notes "releaseNotesInput"?: string // Release notes file "releaseNotesFile"?: string // Distribution group ID "distributionGroupId"?: string }) ... }, { // NuGet tool installer // // Acquires a specific version of NuGet from the internet or the // tools cache and adds it to the PATH. Use this task to change // the version of NuGet used in the NuGet tasks. "task"!: null | bool | number | =~"^NuGetToolInstaller@0$" | [...] | { ... } // NuGet tool installer inputs "inputs"?: null | bool | number | string | [...] | close({ // Version of NuGet.exe to install "versionSpec"?: string // Always download the latest matching version "checkLatest"?: bool }) ... }, { // NuGet tool installer // // Acquires a specific version of NuGet from the internet or the // tools cache and adds it to the PATH. Use this task to change // the version of NuGet used in the NuGet tasks. "task"!: null | bool | number | =~"^NuGetToolInstaller@1$" | [...] | { ... } // NuGet tool installer inputs "inputs"?: null | bool | number | string | [...] | close({ // Version of NuGet.exe to install "versionSpec"?: string // Always check for new versions "checkLatest"?: bool }) ... }, { // Jenkins download artifacts // // Download artifacts produced by a Jenkins job "task"!: null | bool | number | =~"^JenkinsDownloadArtifacts@2$" | [...] | { ... } // Jenkins download artifacts inputs "inputs"!: null | bool | number | string | [...] | close({ // Jenkins service connection "jenkinsServerConnection"!: string // Job name "jobName"!: string // Jenkins job type "jenkinsJobType"?: string // Save to "saveTo"?: string // Download artifacts produced by "jenkinsBuild"?: "LastSuccessfulBuild" | "BuildNumber" // Jenkins build number "jenkinsBuildNumber"?: string // Item Pattern "itemPattern"?: string // Download Commits and WorkItems "downloadCommitsAndWorkItems"?: bool // Download commits and work items from "startJenkinsBuildNumber"?: string // Commit and WorkItem FileName "artifactDetailsFileNameSuffix"?: string // Artifacts are propagated to Azure "propagatedArtifacts"?: bool // Artifact Provider "artifactProvider"?: "azureStorage" // Azure Subscription "ConnectedServiceNameARM"?: string // Storage Account Name "storageAccountName"?: string // Container Name "containerName"?: string // Common Virtual Path "commonVirtualPath"?: string }) ... }, { // Jenkins download artifacts // // Download artifacts produced by a Jenkins job "task"!: null | bool | number | =~"^JenkinsDownloadArtifacts@1$" | [...] | { ... } // Jenkins download artifacts inputs "inputs"!: null | bool | number | string | [...] | close({ // Jenkins service connection "jenkinsServerConnection"!: string // Job name "jobName"!: string // Jenkins job type "jenkinsJobType"?: string // Save to "saveTo"?: string // Download artifacts produced by "jenkinsBuild"?: "LastSuccessfulBuild" | "BuildNumber" // Jenkins build number "jenkinsBuildNumber"?: string // Item Pattern "itemPattern"?: string // Download Commits and WorkItems "downloadCommitsAndWorkItems"?: bool // Download commits and work items from "startJenkinsBuildNumber"?: string // Commit and WorkItem FileName "artifactDetailsFileNameSuffix"?: string // Artifacts are propagated to Azure "propagatedArtifacts"?: bool // Artifact Provider "artifactProvider"?: "azureStorage" // Azure Subscription "ConnectedServiceNameARM"?: string // Storage Account Name "storageAccountName"?: string // Container Name "containerName"?: string // Common Virtual Path "commonVirtualPath"?: string }) ... }, { // Jenkins download artifacts // // Download artifacts produced by a Jenkins job "task"!: null | bool | number | =~"^JenkinsDownloadArtifacts@2$" | [...] | { ... } // Jenkins download artifacts inputs "inputs"!: null | bool | number | string | [...] | close({ // Jenkins service connection "jenkinsServerConnection"!: string // Job name "jobName"!: string // Jenkins job type "jenkinsJobType"?: string // Save to "saveTo"?: string // Download artifacts produced by "jenkinsBuild"?: "LastSuccessfulBuild" | "BuildNumber" // Jenkins build number "jenkinsBuildNumber"?: string // Item Pattern "itemPattern"?: string // Download Commits and WorkItems "downloadCommitsAndWorkItems"?: bool // Download commits and work items from "startJenkinsBuildNumber"?: string // Commit and WorkItem FileName "artifactDetailsFileNameSuffix"?: string // Artifacts are propagated to Azure "propagatedArtifacts"?: bool // Artifact Provider "artifactProvider"?: "azureStorage" // Azure Subscription "ConnectedServiceNameARM"?: string // Storage Account Name "storageAccountName"?: string // Container Name "containerName"?: string // Common Virtual Path "commonVirtualPath"?: string }) ... }, { // Azure Functions for container // // Update a function app with a Docker container "task"!: null | bool | number | =~"^AzureFunctionAppContainer@1$" | [...] | { ... } // Azure Functions for container inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription "azureSubscription"!: string // App name "appName"!: string // Deploy to Slot or App Service Environment "deployToSlotOrASE"?: bool // Resource group "resourceGroupName"?: string // Slot "slotName"?: string // Image name "imageName"!: string // Startup command "containerCommand"?: string // App settings "appSettings"?: string // Configuration settings "configurationStrings"?: string }) ... }, { // Decrypt file (OpenSSL) // // Decrypt a file using OpenSSL "task"!: null | bool | number | =~"^DecryptFile@1$" | [...] | { ... } // Decrypt file (OpenSSL) inputs "inputs"!: null | bool | number | string | [...] | close({ // Cypher "cipher"?: string // Encrypted file "inFile"!: string // Passphrase "passphrase"!: string // Decrypted file path "outFile"?: string // Working directory "workingDirectory"?: string }) ... }, { // Package and deploy Helm charts // // Deploy, configure, update a Kubernetes cluster in Azure // Container Service by running helm commands "task"!: null | bool | number | =~"^HelmDeploy@1$" | [...] | { ... } // Package and deploy Helm charts inputs "inputs"!: null | bool | number | string | [...] | close({ // Connection Type "connectionType"?: "Azure Resource Manager" | "Kubernetes Service Connection" | "None" // Azure subscription "azureSubscription"?: string // Resource group "azureResourceGroup"?: string // Kubernetes cluster "kubernetesCluster"?: string // Use cluster admin credentials "useClusterAdmin"?: bool // Kubernetes Service Connection "kubernetesServiceConnection"?: string // Namespace "namespace"?: string // Azure subscription for Container Registry "azureSubscriptionForACR"!: string // Resource group "azureResourceGroupForACR"!: string // Azure Container Registry "azureContainerRegistry"!: string // Command "command"?: "create" | "delete" | "expose" | "get" | "init" | "install" | "login" | "logout" | "ls" | "package" | "rollback" | "upgrade" | "uninstall" // Chart Type "chartType"?: "Name" | "FilePath" // Chart Name "chartName"?: string // Chart Path "chartPath"?: string // Version "chartVersion"?: string // Release Name "releaseName"?: string // Set Values "overrideValues"?: string // Value File "valueFile"?: string // Destination "destination"?: string // Use canary image version. "canaryImage"?: bool // Upgrade Tiller "upgradeTiller"?: bool // Update Dependency "updateDependency"?: bool // Save "save"?: bool // Install if release not present. "install"?: bool // Recreate Pods. "recreate"?: bool // Reset Values. "resetValues"?: bool // Force "force"?: bool // Wait "waitForExecution"?: bool // Arguments "arguments"?: string // Enable TLS "enableTls"?: bool // CA certificate "caCert"?: string // Certificate "certificate"?: string // Key "privatekey"?: string // Tiller namespace "tillerNamespace"?: string // Fail on Standard Error "failOnStderr"?: bool // Publish pipeline metadata "publishPipelineMetadata"?: bool // Chart Name For Azure Container Registry "chartNameForACR"?: string // Chart Path for Azure Container Registry "chartPathForACR"?: string }) ... }, { // Package and deploy Helm charts // // Deploy, configure, update a Kubernetes cluster in Azure // Container Service by running helm commands "task"!: null | bool | number | =~"^HelmDeploy@0$" | [...] | { ... } // Package and deploy Helm charts inputs "inputs"!: null | bool | number | string | [...] | close({ // Connection Type "connectionType"?: "Azure Resource Manager" | "Kubernetes Service Connection" | "None" // Azure subscription "azureSubscription"?: string // Resource group "azureResourceGroup"?: string // Kubernetes cluster "kubernetesCluster"?: string // Use cluster admin credentials "useClusterAdmin"?: bool // Kubernetes Service Connection "kubernetesServiceConnection"?: string // Namespace "namespace"?: string // Azure subscription for Container Registry "azureSubscriptionForACR"!: string // Resource group "azureResourceGroupForACR"!: string // Azure Container Registry "azureContainerRegistry"!: string // Command "command"?: "create" | "delete" | "expose" | "get" | "init" | "install" | "login" | "logout" | "ls" | "push" | "package" | "rollback" | "save" | "upgrade" | "uninstall" // Chart Type "chartType"?: "Name" | "FilePath" // Chart Name "chartName"?: string // Chart Path "chartPath"?: string // Remote Repo "remoteRepo"?: string // Version "chartVersion"?: string // Release Name "releaseName"?: string // Set Values "overrideValues"?: string // Value File "valueFile"?: string // Destination "destination"?: string // Use canary image version. "canaryImage"?: bool // Upgrade Tiller "upgradeTiller"?: bool // Update Dependency "updateDependency"?: bool // Save "save"?: bool // Install if release not present. "install"?: bool // Recreate Pods. "recreate"?: bool // Reset Values. "resetValues"?: bool // Force "force"?: bool // Wait "waitForExecution"?: bool // Arguments "arguments"?: string // Enable TLS "enableTls"?: bool // CA certificate "caCert"?: string // Certificate "certificate"?: string // Key "privatekey"?: string // Tiller namespace "tillerNamespace"?: string // Fail on Standard Error "failOnStderr"?: bool // Publish pipeline metadata "publishPipelineMetadata"?: bool // Chart Name For Azure Container Registry "chartNameForACR"?: string // Chart Path for Azure Container Registry "chartPathForACR"?: string }) ... }, { // Install Apple certificate // // Install an Apple certificate required to build on a macOS agent // machine "task"!: null | bool | number | =~"^InstallAppleCertificate@2$" | [...] | { ... } // Install Apple certificate inputs "inputs"!: null | bool | number | string | [...] | close({ // Certificate (P12) "certSecureFile"!: string // Certificate (P12) password "certPwd"?: string // Keychain "keychain"?: "default" | "temp" | "custom" // Keychain password "keychainPassword"?: string // Custom keychain path "customKeychainPath"?: string // Delete certificate from keychain "deleteCert"?: bool // Delete custom keychain "deleteCustomKeychain"?: bool // Certificate signing identity "signingIdentity"?: string // Set up partition_id ACL for the imported private key "setUpPartitionIdACLForPrivateKey"?: bool // OpenSSL arguments for PKCS12 "opensslPkcsArgs"?: string }) ... }, { // Install Apple Certificate // // Install an Apple certificate required to build on a macOS agent "task"!: null | bool | number | =~"^InstallAppleCertificate@1$" | [...] | { ... } // Install Apple Certificate inputs "inputs"!: null | bool | number | string | [...] | close({ // Certificate (P12) "certSecureFile"!: string // Certificate (P12) password "certPwd"?: string // Keychain "keychain"?: "default" | "temp" | "custom" // Keychain password "keychainPassword"?: string // Custom keychain path "customKeychainPath"?: string // Delete certificate from keychain "deleteCert"?: bool // Delete custom keychain "deleteCustomKeychain"?: bool // Certificate signing identity "signingIdentity"?: string }) ... }, { // Install Apple Certificate // // Install an Apple certificate required to build on a macOS agent "task"!: null | bool | number | =~"^InstallAppleCertificate@0$" | [...] | { ... } // Install Apple Certificate inputs "inputs"!: null | bool | number | string | [...] | close({ // Certificate (P12) "certSecureFile"!: string // Certificate (P12) Password "certPwd"?: string // Keychain "keychain"?: "default" | "temp" | "custom" // Keychain Password "keychainPassword"?: string // Custom Keychain Path "customKeychainPath"?: string // Delete Certificate from Keychain "deleteCert"?: bool // Delete Custom Keychain "deleteCustomKeychain"?: bool // Certificate Signing Identity "signingIdentity"?: string }) ... }, { // Invoke Azure Function // // Invoke an Azure Function "task"!: null | bool | number | =~"^AzureFunction@1$" | [...] | { ... } // Invoke Azure Function inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure function URL "function"!: string // Function key "key"!: string // Method "method"?: "OPTIONS" | "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "TRACE" | "PATCH" // Headers "headers"?: string // Query parameters "queryParameters"?: string // Body "body"?: string // Completion event "waitForCompletion"?: "true" | "false" // Success criteria "successCriteria"?: string }) ... }, { // Invoke Azure Function // // Invoke Azure function as a part of your process. "task"!: null | bool | number | =~"^AzureFunction@0$" | [...] | { ... } // Invoke Azure Function inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure function url "function"!: string // Function key "key"!: string // Method "method"?: "OPTIONS" | "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "TRACE" | "PATCH" // Headers "headers"?: string // Query parameters "queryParameters"?: string // Body "body"?: string // Complete based on "waitForCompletion"?: "true" | "false" // Success criteria "successCriteria"?: string }) ... }, { // Open Policy Agent Installer // // Install Open Policy Agent on agent machine "task"!: null | bool | number | =~"^OpenPolicyAgentInstaller@0$" | [...] | { ... } // Open Policy Agent Installer inputs "inputs"?: null | bool | number | string | [...] | close({ // OPA Version Spec "opaVersion"?: string }) ... }, { // Download GitHub Release // // Downloads a GitHub Release from a repository "task"!: null | bool | number | =~"^DownloadGitHubRelease@0$" | [...] | { ... } // Download GitHub Release inputs "inputs"!: null | bool | number | string | [...] | close({ // GitHub Connection "connection"!: string // Repository "userRepository"!: string // Default version "defaultVersionType"?: "latest" | "specificVersion" | "specificTag" // Release "version"?: string // Item Pattern "itemPattern"?: string // Destination directory "downloadPath"?: string }) ... }, { // SSH // // Run shell commands or a script on a remote machine using SSH "task"!: null | bool | number | =~"^SSH@0$" | [...] | { ... } // SSH inputs "inputs"!: null | bool | number | string | [...] | close({ // SSH service connection "sshEndpoint"!: string // Run "runOptions"?: "commands" | "script" | "inline" // Commands "commands"?: string // Shell script path "scriptPath"?: string // Inline Script "inline"?: string // Interpreter command "interpreterCommand"?: string // Arguments "args"?: string // Fail on STDERR "failOnStdErr"?: bool // Enable interactive session "interactiveSession"?: bool // SSH handshake timeout "readyTimeout"?: string // Use interactive-keyboard authentication "interactiveKeyboardAuthentication"?: bool }) ... }, { // Publish pipeline artifact // // Publish a local directory or file as a named artifact for the // current pipeline "task"!: null | bool | number | =~"^PublishPipelineArtifact@0$" | [...] | { ... } // Publish pipeline artifact inputs "inputs"!: null | bool | number | string | [...] | close({ // The name of this artifact "artifactName"?: string // Path to publish "targetPath"!: string // Custom properties "properties"?: string }) ... }, { // Publish Pipeline Artifacts // // Publish (upload) a file or directory as a named artifact for // the current run "task"!: null | bool | number | =~"^PublishPipelineArtifact@1$" | [...] | { ... } // Publish Pipeline Artifacts inputs "inputs"?: null | bool | number | string | [...] | close({ // File or directory path "targetPath"?: string // Artifact name "artifact"?: string // Artifact publish location "publishLocation"?: "pipeline" | "filepath" // File share path "fileSharePath"?: string // Parallel copy "parallel"?: bool // Parallel count "parallelCount"?: int // Custom properties "properties"?: string }) ... }, { // SonarQube for MSBuild - Begin Analysis // // [DEPRECATED] Fetch the Quality Profile from SonarQube to // configure the analysis "task"!: null | bool | number | =~"^SonarQubePreBuild@1$" | [...] | { ... } // SonarQube for MSBuild - Begin Analysis inputs "inputs"!: null | bool | number | string | [...] | close({ // Project Key "projectKey"!: string // Project Name "projectName"!: string // Project Version "projectVersion"?: string // SonarQube Endpoint "connectedServiceName"!: string // Db Connection String "dbUrl"?: string // Db UserName "dbUsername"?: string // Db User Password "dbPassword"?: string // Additional Settings "cmdLineArgs"?: string // Settings File "configFile"?: string // Include full analysis report in the build summary (SQ 5.3+) "includeFullReport"?: bool // Fail the build on quality gate failure (SQ 5.3+) "breakBuild"?: bool }) ... }, { // Download artifacts from file share // // Download artifacts from a file share, like \\share\drop "task"!: null | bool | number | =~"^DownloadFileshareArtifacts@1$" | [...] | { ... } // Download artifacts from file share inputs "inputs"!: null | bool | number | string | [...] | close({ // File share path "filesharePath"!: string // Artifact name "artifactName"!: string // Matching pattern "itemPattern"?: string // Download path "downloadPath"?: string // Parallelization limit "parallelizationLimit"?: string }) ... }, { // Kubectl // // Deploy, configure, update a Kubernetes cluster in Azure // Container Service by running kubectl commands "task"!: null | bool | number | =~"^Kubernetes@1$" | [...] | { ... } // Kubectl inputs "inputs"?: null | bool | number | string | [...] | close({ // Service connection type "connectionType"?: "Azure Resource Manager" | "Kubernetes Service Connection" | "None" // Kubernetes service connection "kubernetesServiceEndpoint"?: string // Azure subscription "azureSubscriptionEndpoint"?: string // Resource group "azureResourceGroup"?: string // Kubernetes cluster "kubernetesCluster"?: string // Use cluster admin credentials "useClusterAdmin"?: bool // Namespace "namespace"?: string // Command "command"?: "apply" | "create" | "delete" | "exec" | "expose" | "get" | "login" | "logout" | "logs" | "rollout" | "run" | "set" | "top" // Use configuration "useConfigurationFile"?: bool // Configuration type "configurationType"?: "configuration" | "inline" // File path "configuration"?: string // Inline configuration "inline"?: string // Arguments "arguments"?: string // Type of secret "secretType"?: "dockerRegistry" | "generic" // Arguments "secretArguments"?: string // Container registry type "containerRegistryType"?: "Azure Container Registry" | "Container Registry" // Docker registry service connection "dockerRegistryEndpoint"?: string // Azure subscription "azureSubscriptionEndpointForSecrets"?: string // Azure container registry "azureContainerRegistry"?: string // Secret name "secretName"?: string // Force update secret "forceUpdate"?: bool // ConfigMap name "configMapName"?: string // Force update configmap "forceUpdateConfigMap"?: bool // Use file "useConfigMapFile"?: bool // ConfigMap file "configMapFile"?: string // Arguments "configMapArguments"?: string // Kubectl "versionOrLocation"?: "version" | "location" // Version spec "versionSpec"?: string // Check for latest version "checkLatest"?: bool // Path to kubectl "specifyLocation"?: string // Working directory "workingDirectory"?: string // Output format "outputFormat"?: "json" | "yaml" | "none" }) ... }, { // Kubectl // // Deploy, configure, update a Kubernetes cluster in Azure // Container Service by running kubectl commands "task"!: null | bool | number | =~"^Kubernetes@0$" | [...] | { ... } // Kubectl inputs "inputs"?: null | bool | number | string | [...] | close({ // Kubernetes service connection "kubernetesServiceConnection"?: string // Namespace "namespace"?: string // Command "command"?: "apply" | "create" | "delete" | "exec" | "expose" | "get" | "logs" | "run" | "set" | "top" // Use Configuration files "useConfigurationFile"?: bool // Configuration file "configuration"?: string // Arguments "arguments"?: string // Type of secret "secretType"?: "dockerRegistry" | "generic" // Arguments "secretArguments"?: string // Container Registry type "containerRegistryType"?: "Azure Container Registry" | "Container Registry" // Docker Registry service connection "dockerRegistryConnection"?: string // Azure subscription "azureSubscription"?: string // Azure Container Registry "azureContainerRegistry"?: string // Secret name "secretName"?: string // Force update secret "forceUpdate"?: bool // ConfigMap name "configMapName"?: string // Force update configmap "forceUpdateConfigMap"?: bool // Use file "useConfigMapFile"?: bool // ConfigMap file "configMapFile"?: string // Arguments "configMapArguments"?: string // Kubectl "versionOrLocation"?: "version" | "location" // Version spec "versionSpec"?: string // Check for latest version "checkLatest"?: bool // Path to Kubectl "specifyLocation"?: string // Working directory "workingDirectory"?: string // Output format "outputFormat"?: "json" | "yaml" // Output variable name "kubectlOutput"?: string }) ... }, { // Azure IoT Edge // // Build and deploy an Azure IoT Edge image "task"!: null | bool | number | =~"^AzureIoTEdge@2$" | [...] | { ... } // Azure IoT Edge inputs "inputs"?: null | bool | number | string | [...] | close({ // Action "action"?: "Build module images" | "Push module images" | "Generate deployment manifest" | "Deploy to IoT Edge devices" // Deployment file "deploymentFilePath"?: string // Azure subscription contains IoT Hub "azureSubscription"?: string // IoT Hub name "iothubname"?: string // IoT Edge deployment ID "deploymentid"?: string // IoT Edge deployment priority "priority"?: string // Choose single/multiple device "deviceOption"?: "Single Device" | "Multiple Devices" // IoT Edge device ID "deviceId"?: string // IoT Edge device target condition "targetcondition"?: string // Container registry type "containerregistrytype"?: "Azure Container Registry" | "Generic Container Registry" // Docker Registry Connection "dockerRegistryConnection"?: string // Azure subscription "azureSubscriptionEndpoint"?: string // Azure Container Registry "azureContainerRegistry"?: string // .template.json file "templateFilePath"?: string // Default platform "defaultPlatform"?: "amd64" | "windows-amd64" | "arm32v7" | "arm64v8" // Add registry credential to deployment manifest "fillRegistryCredential"?: "true" | "false" // Output path "deploymentManifestOutputPath"?: string // Validate the schema of generated deployment manifest "validateGeneratedDeploymentManifest"?: "true" | "false" // Bypass module(s) "bypassModules"?: string }) ... }, { // Service Fabric Compose deploy // // Deploy a Docker Compose application to an Azure Service Fabric // cluster "task"!: null | bool | number | =~"^ServiceFabricComposeDeploy@0$" | [...] | { ... } // Service Fabric Compose deploy inputs "inputs"!: null | bool | number | string | [...] | close({ // Cluster Service Connection "clusterConnection"!: string // Compose File Path "composeFilePath"?: string // Application Name "applicationName"?: string // Registry Credentials Source "registryCredentials"?: "AzureResourceManagerEndpoint" | "ContainerRegistryEndpoint" | "UsernamePassword" | "None" // Docker Registry Service Connection "dockerRegistryConnection"?: string // Azure subscription "azureSubscription"?: string // Registry User Name "registryUserName"?: string // Registry Password "registryPassword"?: string // Password Encrypted "passwordEncrypted"?: bool // Upgrade "upgrade"?: bool // Deploy Timeout (s) "deployTimeoutSec"?: string // Remove Timeout (s) "removeTimeoutSec"?: string // Get Status Timeout (s) "getStatusTimeoutSec"?: string }) ... }, { // Android Signing // // Sign and align Android APK files "task"!: null | bool | number | =~"^AndroidSigning@1$" | [...] | { ... } // Android Signing inputs "inputs"!: null | bool | number | string | [...] | close({ // APK Files "files"!: string // Sign the APK "jarsign"?: bool // Keystore File "keystoreFile"?: string // Keystore Password "keystorePass"?: string // Alias "keystoreAlias"?: string // Key Password "keyPass"?: string // Jarsigner Arguments "jarsignerArguments"?: string // Zipalign "zipalign"?: bool // Zipalign Location "zipalignLocation"?: string }) ... }, { // Android signing // // Sign and align Android APK files "task"!: null | bool | number | =~"^AndroidSigning@2$" | [...] | { ... } // Android signing inputs "inputs"?: null | bool | number | string | [...] | close({ // APK files "apkFiles"?: string // Sign the APK "jarsign"?: bool // Keystore file "jarsignerKeystoreFile"?: string // Keystore password "jarsignerKeystorePassword"?: string // Alias "jarsignerKeystoreAlias"?: string // Key password "jarsignerKeyPassword"?: string // Jarsigner arguments "jarsignerArguments"?: string // Zipalign "zipalign"?: bool // Zipalign location "zipalignFile"?: string }) ... }, { // Android signing // // Sign and align Android APK files "task"!: null | bool | number | =~"^AndroidSigning@3$" | [...] | { ... } // Android signing inputs "inputs"?: null | bool | number | string | [...] | close({ // APK files "apkFiles"?: string // Sign the APK "apksign"?: bool // Keystore file "apksignerKeystoreFile"?: string // Keystore password "apksignerKeystorePassword"?: string // Alias "apksignerKeystoreAlias"?: string // Key password "apksignerKeyPassword"?: string // apksigner version "apksignerVersion"?: string // apksigner arguments "apksignerArguments"?: string // apksigner location "apksignerFile"?: string // Zipalign "zipalign"?: bool // Zipalign version "zipalignVersion"?: string // Zipalign location "zipalignFile"?: string }) ... }, { // Download pipeline artifact // // Downloads an artifact associated with a pipeline "task"!: null | bool | number | =~"^DownloadPipelineArtifact@0$" | [...] | { ... } // Download pipeline artifact inputs "inputs"!: null | bool | number | string | [...] | close({ // The specific pipeline to download from "pipelineId"?: string // The name of artifact to download. "artifactName"?: string // Path to download to "targetPath"!: string }) ... }, { // Download Pipeline Artifacts // // Download build and pipeline artifacts "task"!: null | bool | number | =~"^DownloadPipelineArtifact@2$" | [...] | { ... } // Download Pipeline Artifacts inputs "inputs"?: null | bool | number | string | [...] | close({ // Download artifacts produced by "buildType"?: "current" | "specific" // Project "project"?: string // Build pipeline "definition"?: string // When appropriate, download artifacts from the triggering build. "specificBuildWithTriggering"?: bool // Build version to download "buildVersionToDownload"?: "latest" | "latestFromBranch" | "specific" // Branch name "branchName"?: string // Build "pipelineId"?: string // Build Tags "tags"?: string // Download artifacts from partially succeeded builds. "allowPartiallySucceededBuilds"?: bool // Download artifacts from failed builds. "allowFailedBuilds"?: bool // Artifact name "artifactName"?: string // Matching patterns "itemPattern"?: string // Destination directory "targetPath"?: string }) ... }, { // Download pipeline artifact // // Download a named artifact from a pipeline to a local path "task"!: null | bool | number | =~"^DownloadPipelineArtifact@1$" | [...] | { ... } // Download pipeline artifact inputs "inputs"?: null | bool | number | string | [...] | close({ // Download artifacts produced by "buildType"?: "current" | "specific" // Project "project"?: string // Build pipeline "pipeline"?: string // When appropriate, download artifacts from the triggering build. "specificBuildWithTriggering"?: bool // Build version to download "buildVersionToDownload"?: "latest" | "latestFromBranch" | "specific" // Branch name "branchName"?: string // Build "pipelineId"?: string // Build Tags "tags"?: string // Artifact name "artifactName"?: string // Matching pattern "itemPattern"?: string // Destination directory "targetPath"?: string }) ... }, { // Use Python version // // Use the specified version of Python from the tool cache, // optionally adding it to the PATH "task"!: null | bool | number | =~"^UsePythonVersion@0$" | [...] | { ... } // Use Python version inputs "inputs"?: null | bool | number | string | [...] | close({ // Version spec "versionSpec"?: string // Disable downloading releases from the GitHub registry "disableDownloadFromRegistry"?: bool // Allow downloading unstable releases "allowUnstable"?: bool // GitHub token for GitHub Actions python registry "githubToken"?: string // Add to PATH "addToPath"?: bool // Architecture "architecture"?: "x86" | "x64" }) ... }, { // Service Fabric PowerShell // // Run a PowerShell script in the context of an Azure Service // Fabric cluster connection "task"!: null | bool | number | =~"^ServiceFabricPowerShell@1$" | [...] | { ... } // Service Fabric PowerShell inputs "inputs"!: null | bool | number | string | [...] | close({ // Cluster Service Connection "clusterConnection"!: string // Script Type "ScriptType"?: "FilePath" | "InlineScript" // Script Path "ScriptPath"?: string // Inline Script "Inline"?: string // Script Arguments "ScriptArguments"?: string }) ... }, { // Visual Studio Test // // Run unit and functional tests (Selenium, Appium, Coded UI test, // etc.) using the Visual Studio Test (VsTest) runner. Test // frameworks that have a Visual Studio test adapter such as // MsTest, xUnit, NUnit, Chutzpah (for JavaScript tests using // QUnit, Mocha and Jasmine), etc. can be run. Tests can be // distributed on multiple agents using this task (version 2 and // later). "task"!: null | bool | number | =~"^VSTest@2$" | [...] | { ... } // Visual Studio Test inputs "inputs"?: null | bool | number | string | [...] | close({ // Select tests using "testSelector"?: "testAssemblies" | "testPlan" | "testRun" // Test files "testAssemblyVer2"?: string // Test plan "testPlan"?: string // Test suite "testSuite"?: string // Test configuration "testConfiguration"?: string // Test Run "tcmTestRun"?: string // Search folder "searchFolder"?: string // Test results folder "resultsFolder"?: string // Test filter criteria "testFiltercriteria"?: string // Run only impacted tests "runOnlyImpactedTests"?: bool // Number of builds after which all tests should be run "runAllTestsAfterXBuilds"?: string // Test mix contains UI tests "uiTests"?: bool // Select test platform using "vstestLocationMethod"?: "version" | "location" // Test platform version "vsTestVersion"?: "latest" | "17.0" | "16.0" | "15.0" | "14.0" | "toolsInstaller" // Path to vstest.console.exe "vstestLocation"?: string // Settings file "runSettingsFile"?: string // Override test run parameters "overrideTestrunParameters"?: string // Path to custom test adapters "pathtoCustomTestAdapters"?: string // Run tests in parallel on multi-core machines "runInParallel"?: bool // Run tests in isolation "runTestsInIsolation"?: bool // Code coverage enabled "codeCoverageEnabled"?: bool // Other console options "otherConsoleOptions"?: string // Batch tests "distributionBatchType"?: "basedOnTestCases" | "basedOnExecutionTime" | "basedOnAssembly" // Batch options "batchingBasedOnAgentsOption"?: "autoBatchSize" | "customBatchSize" // Number of tests per batch "customBatchSizeValue"?: string // Batch options "batchingBasedOnExecutionTimeOption"?: "autoBatchSize" | "customTimeBatchSize" // Running time (sec) per batch "customRunTimePerBatchValue"?: string // Replicate tests instead of distributing when multiple agents // are used in the job "dontDistribute"?: bool // Test run title "testRunTitle"?: string // Build platform "platform"?: string // Build configuration "configuration"?: string // Upload test attachments "publishRunAttachments"?: bool // Fail the task if a minimum number of tests are not run. "failOnMinTestsNotRun"?: bool // Minimum # of tests "minimumExpectedTests"?: string // Collect advanced diagnostics in case of catastrophic failures "diagnosticsEnabled"?: bool // Collect process dump and attach to test run report "collectDumpOn"?: "onAbortOnly" | "always" | "never" // Rerun failed tests "rerunFailedTests"?: bool // Do not rerun if test failures exceed specified threshold "rerunType"?: "basedOnTestFailurePercentage" | "basedOnTestFailureCount" // % failure "rerunFailedThreshold"?: string // # of failed tests "rerunFailedTestCasesMaxLimit"?: string // Maximum # of attempts "rerunMaxAttempts"?: string }) ... }, { // Visual Studio Test // // Run unit and functional tests (Selenium, Appium, Coded UI test, // etc.) using the Visual Studio Test (VsTest) runner. Test // frameworks that have a Visual Studio test adapter such as // MsTest, xUnit, NUnit, Chutzpah (for JavaScript tests using // QUnit, Mocha and Jasmine), etc. can be run. Tests can be // distributed on multiple agents using this task (version 2 and // later). "task"!: null | bool | number | =~"^VSTest@3$" | [...] | { ... } // Visual Studio Test inputs "inputs"?: null | bool | number | string | [...] | close({ // Azure Resource Manager connection "azureSubscription"?: string // Select tests using "testSelector"?: "testAssemblies" | "testPlan" | "testRun" // Test files "testAssemblyVer2"?: string // Test plan "testPlan"?: string // Test suite "testSuite"?: string // Test configuration "testConfiguration"?: string // Test Run "tcmTestRun"?: string // Search folder "searchFolder"?: string // Test results folder "resultsFolder"?: string // Test filter criteria "testFiltercriteria"?: string // Run only impacted tests "runOnlyImpactedTests"?: bool // Number of builds after which all tests should be run "runAllTestsAfterXBuilds"?: string // Test mix contains UI tests "uiTests"?: bool // Select test platform using "vstestLocationMethod"?: "version" | "location" // Test platform version "vsTestVersion"?: "latest" | "17.0" | "16.0" | "15.0" | "14.0" | "toolsInstaller" // Path to vstest.console.exe "vstestLocation"?: string // Settings file "runSettingsFile"?: string // Override test run parameters "overrideTestrunParameters"?: string // Path to custom test adapters "pathtoCustomTestAdapters"?: string // Run tests in parallel on multi-core machines "runInParallel"?: bool // Run tests in isolation "runTestsInIsolation"?: bool // Code coverage enabled "codeCoverageEnabled"?: bool // Other console options "otherConsoleOptions"?: string // Batch tests "distributionBatchType"?: "basedOnTestCases" | "basedOnExecutionTime" | "basedOnAssembly" // Batch options "batchingBasedOnAgentsOption"?: "autoBatchSize" | "customBatchSize" // Number of tests per batch "customBatchSizeValue"?: string // Batch options "batchingBasedOnExecutionTimeOption"?: "autoBatchSize" | "customTimeBatchSize" // Running time (sec) per batch "customRunTimePerBatchValue"?: string // Replicate tests instead of distributing when multiple agents // are used in the job "dontDistribute"?: bool // Test run title "testRunTitle"?: string // Build platform "platform"?: string // Build configuration "configuration"?: string // Custom Logger Configuration "customLoggerConfig"?: string // Upload test attachments "publishRunAttachments"?: bool // Disable publishing test results "donotPublishTestResults"?: bool // Fail the task if a minimum number of tests are not run. "failOnMinTestsNotRun"?: bool // Minimum # of tests "minimumExpectedTests"?: string // Collect advanced diagnostics in case of catastrophic failures "diagnosticsEnabled"?: bool // Collect process dump and attach to test run report "collectDumpOn"?: "onAbortOnly" | "always" | "never" // Rerun failed tests "rerunFailedTests"?: bool // Do not rerun if test failures exceed specified threshold "rerunType"?: "basedOnTestFailurePercentage" | "basedOnTestFailureCount" // % failure "rerunFailedThreshold"?: string // # of failed tests "rerunFailedTestCasesMaxLimit"?: string // Maximum # of attempts "rerunMaxAttempts"?: string }) ... }, { // Visual Studio Test // // Run tests with Visual Studio test runner "task"!: null | bool | number | =~"^VSTest@1$" | [...] | { ... } // Visual Studio Test inputs "inputs"?: null | bool | number | string | [...] | close({ // Test Assembly "testAssembly"?: string // Test Filter criteria "testFiltercriteria"?: string // Run Settings File "runSettingsFile"?: string // Override TestRun Parameters "overrideTestrunParameters"?: string // Code Coverage Enabled "codeCoverageEnabled"?: bool // Run In Parallel "runInParallel"?: bool // VSTest "vstestLocationMethod"?: "version" | "location" // VSTest version "vsTestVersion"?: "latest" | "14.0" | "12.0" // Path to vstest.console.exe "vstestLocation"?: string // Path to Custom Test Adapters "pathtoCustomTestAdapters"?: string // Other console options "otherConsoleOptions"?: string // Test Run Title "testRunTitle"?: string // Platform "platform"?: string // Configuration "configuration"?: string // Upload Test Attachments "publishRunAttachments"?: bool }) ... }, { // Manual validation // // Pause a pipeline run to wait for manual interaction. Works only // with YAML pipelines. "task"!: null | bool | number | =~"^ManualValidation@1$" | [...] | { ... } // Manual validation inputs "inputs"!: null | bool | number | string | [...] | close({ // Notify users "notifyUsers"!: string // Approvers "approvers"?: string // Allow approvers to approve their own run "allowApproversToApproveTheirOwnRuns"?: bool // Instructions "instructions"?: string // On timeout "onTimeout"?: "reject" | "resume" }) ... }, { // Manual validation // // Pause a pipeline run to wait for manual interaction. Works only // with YAML pipelines. "task"!: null | bool | number | =~"^ManualValidation@0$" | [...] | { ... } // Manual validation inputs "inputs"!: null | bool | number | string | [...] | close({ // Notify users "notifyUsers"!: string // Approvers "approvers"?: string // Allow approvers to approve their own run "allowApproversToApproveTheirOwnRuns"?: bool // Instructions "instructions"?: string // On timeout "onTimeout"?: "reject" | "resume" }) ... }, { // Ant // // Build with Apache Ant "task"!: null | bool | number | =~"^Ant@1$" | [...] | { ... } // Ant inputs "inputs"?: null | bool | number | string | [...] | close({ // Ant build file "buildFile"?: string // Options "options"?: string // Target(s) "targets"?: string // Publish to Azure Pipelines "publishJUnitResults"?: bool // Test results files "testResultsFiles"?: string // Test run title "testRunTitle"?: string // Code coverage tool "codeCoverageToolOptions"?: "None" | "Cobertura" | "JaCoCo" // Class files directories "codeCoverageClassFilesDirectories"?: string // Class inclusion/exclusion filters "codeCoverageClassFilter"?: string // Source files directories "codeCoverageSourceDirectories"?: string // Fail when code coverage results are missing "codeCoverageFailIfEmpty"?: bool // Set ANT_HOME path "antHomeDirectory"?: string // Set JAVA_HOME by "javaHomeOption"?: "JDKVersion" | "Path" // JDK version "jdkVersionOption"?: "default" | "1.11" | "1.10" | "1.9" | "1.8" | "1.7" | "1.6" // JDK path "jdkUserInputDirectory"?: string // JDK architecture "jdkArchitectureOption"?: "x86" | "x64" }) ... }, { // Visual Studio test agent deployment // // Deprecated: Instead, use the 'Visual Studio Test' task to run // unit and functional tests "task"!: null | bool | number | =~"^DeployVisualStudioTestAgent@2$" | [...] | { ... } // Visual Studio test agent deployment inputs "inputs"!: null | bool | number | string | [...] | close({ // Machines "testMachines"!: string // Admin login "adminUserName"!: string // Admin password "adminPassword"!: string // Protocol "winRmProtocol"?: "Http" | "Https" // Test Certificate "testCertificate"?: bool // Username "machineUserName"!: string // Password "machinePassword"!: string // Run UI tests "runAsProcess"?: bool // Enable data collection only "isDataCollectionOnly"?: bool // Test agent version "testPlatform"?: "15.0" | "14.0" // Test agent location "agentLocation"?: string // Update test agent "updateTestAgent"?: bool }) ... }, { // Visual Studio Test Agent Deployment // // Deploy and configure Test Agent to run tests on a set of // machines "task"!: null | bool | number | =~"^DeployVisualStudioTestAgent@1$" | [...] | { ... } // Visual Studio Test Agent Deployment inputs "inputs"!: null | bool | number | string | [...] | close({ // Machines "testMachineGroup"!: string // Admin Login "adminUserName"?: string // Admin Password "adminPassword"?: string // Protocol "winRmProtocol"?: "Http" | "Https" // Test Certificate "testCertificate"?: bool // Select Machines By "resourceFilteringMethod"?: "machineNames" | "tags" // Filter Criteria "testMachines"?: string // Username "machineUserName"!: string // Password "machinePassword"!: string // Interactive Process "runAsProcess"?: bool // Test Agent Location "agentLocation"?: string // Update Test Agent "updateTestAgent"?: bool // Enable Data Collection Only "isDataCollectionOnly"?: bool }) ... }, { // Conda environment // // Create and activate a Conda environment "task"!: null | bool | number | =~"^CondaEnvironment@0$" | [...] | { ... } // Conda environment inputs "inputs"!: null | bool | number | string | [...] | close({ // Environment name "environmentName"!: string // Package specs "packageSpecs"?: string // Update to the latest Conda "updateConda"?: bool // Environment creation options "createOptions"?: string // Clean the environment "cleanEnvironment"?: bool }) ... }, { // Conda environment // // This task is deprecated. Use `conda` directly in script to work // with Anaconda environments. "task"!: null | bool | number | =~"^CondaEnvironment@1$" | [...] | { ... } // Conda environment inputs "inputs"?: null | bool | number | string | [...] | close({ // Create a custom environment "createCustomEnvironment"?: bool // Environment name "environmentName"?: string // Package specs "packageSpecs"?: string // Update to the latest Conda "updateConda"?: bool // Other options for `conda install` "installOptions"?: string // Other options for `conda create` "createOptions"?: string // Clean the environment "cleanEnvironment"?: bool }) ... }, { // Batch script // // Run a Windows command or batch script and optionally allow it // to change the environment "task"!: null | bool | number | =~"^BatchScript@1$" | [...] | { ... } // Batch script inputs "inputs"!: null | bool | number | string | [...] | close({ // Path "filename"!: string // Arguments "arguments"?: string // Modify Environment "modifyEnvironment"?: bool // Working folder "workingFolder"?: string // Fail on Standard Error "failOnStandardError"?: bool }) ... }, { // Download Github Npm Package // // Install npm packages from GitHub. "task"!: null | bool | number | =~"^DownloadGithubNpmPackage@1$" | [...] | { ... } // Download Github Npm Package inputs "inputs"!: null | bool | number | string | [...] | close({ // Package Name "packageName"!: string // Package Version "version"!: string // Credentials for registry from GitHub "externalRegistryCredentials"!: string // Destination directory "installDirectory"?: string }) ... }, { // Visual Studio build // // Build with MSBuild and set the Visual Studio version property "task"!: null | bool | number | =~"^VSBuild@1$" | [...] | { ... } // Visual Studio build inputs "inputs"?: null | bool | number | string | [...] | close({ // Solution "solution"?: string // Visual Studio Version "vsVersion"?: "latest" | "17.0" | "16.0" | "15.0" | "14.0" | "12.0" | "11.0" // MSBuild Arguments "msbuildArgs"?: string // Platform "platform"?: string // Configuration "configuration"?: string // Clean "clean"?: bool // Build in Parallel "maximumCpuCount"?: bool // Restore NuGet Packages "restoreNugetPackages"?: bool // MSBuild Architecture "msbuildArchitecture"?: "x86" | "x64" // Record Project Details "logProjectEvents"?: bool // Create Log File "createLogFile"?: bool // Log File Verbosity "logFileVerbosity"?: "quiet" | "minimal" | "normal" | "detailed" | "diagnostic" // Enable Default Logger "enableDefaultLogger"?: bool // Custom Version "customVersion"?: string }) ... }, { // Azure Key Vault // // Download Azure Key Vault secrets "task"!: null | bool | number | =~"^AzureKeyVault@1$" | [...] | { ... } // Azure Key Vault inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription "azureSubscription"!: string // Key vault "KeyVaultName"!: string // Secrets filter "SecretsFilter"?: string // Make secrets available to whole job "RunAsPreJob"?: bool }) ... }, { // Azure Key Vault // // Download Azure Key Vault secrets "task"!: null | bool | number | =~"^AzureKeyVault@2$" | [...] | { ... } // Azure Key Vault inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription "azureSubscription"!: string // Key vault "KeyVaultName"!: string // Secrets filter "SecretsFilter"?: string // Make secrets available to whole job "RunAsPreJob"?: bool }) ... }, { // Use .NET Core // // Acquires a specific version of the .NET Core SDK from the // internet or the local cache and adds it to the PATH. Use this // task to change the version of .NET Core used in subsequent // tasks. Additionally provides proxy support. "task"!: null | bool | number | =~"^UseDotNet@2$" | [...] | { ... } // Use .NET Core inputs "inputs"?: null | bool | number | string | [...] | close({ // Package to install "packageType"?: "runtime" | "sdk" // Use global json "useGlobalJson"?: bool // Working Directory "workingDirectory"?: string // Version "version"?: string // Compatible Visual Studio version "vsVersion"?: string // Include Preview Versions "includePreviewVersions"?: bool // Path To Install .Net Core "installationPath"?: string // Perform Multi Level Lookup "performMultiLevelLookup"?: bool // Set timeout for package download request "requestTimeout"?: int }) ... }, { // .NET Core SDK/runtime installer // // Acquire a specific version of the .NET Core SDK from the // internet or local cache and add it to the PATH "task"!: null | bool | number | =~"^DotNetCoreInstaller@0$" | [...] | { ... } // .NET Core SDK/runtime installer inputs "inputs"?: null | bool | number | string | [...] | close({ // Package to install "packageType"?: "runtime" | "sdk" // Version "version"?: string }) ... }, { // .NET Core sdk/runtime installer // // Acquire a specific version of the .NET Core SDK from the // internet or local cache and add it to the PATH "task"!: null | bool | number | =~"^DotNetCoreInstaller@1$" | [...] | { ... } // .NET Core sdk/runtime installer inputs "inputs"?: null | bool | number | string | [...] | close({ // Package to install "packageType"?: "runtime" | "sdk" // Version "version"?: string // Include Preview Versions "includePreviewVersions"?: bool // Path To Install .Net Core "installationPath"?: string // Perform Multi Level Lookup "performMultiLevelLookup"?: bool }) ... }, { // Use .NET Core // // Acquires a specific version of the .NET Core SDK from the // internet or the local cache and adds it to the PATH. Use this // task to change the version of .NET Core used in subsequent // tasks. Additionally provides proxy support. "task"!: null | bool | number | =~"^UseDotNet@2$" | [...] | { ... } // Use .NET Core inputs "inputs"?: null | bool | number | string | [...] | close({ // Package to install "packageType"?: "runtime" | "sdk" // Use global json "useGlobalJson"?: bool // Working Directory "workingDirectory"?: string // Version "version"?: string // Compatible Visual Studio version "vsVersion"?: string // Include Preview Versions "includePreviewVersions"?: bool // Path To Install .Net Core "installationPath"?: string // Perform Multi Level Lookup "performMultiLevelLookup"?: bool // Set timeout for package download request "requestTimeout"?: int }) ... }, { // Azure App Configuration Import // // Import settings from configuration files into Azure App // Configuration through build or deployment pipelines "task"!: null | bool | number | =~"^AzureAppConfigurationImport@10$" | [...] | { ... } // Azure App Configuration Import inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription "azureSubscription"!: string // App Configuration Endpoint "AppConfigurationEndpoint"!: string // Configuration File Path "ConfigurationFile"!: string // Use the file path extension to determine the file format "UseFilePathExtension"?: bool // File Format "FileFormat"?: "json" | "yaml" | "properties" // File Content Profile "FileContentProfile"?: "appconfig/default" | "appconfig/kvset" // Separator "Separator"?: "." | "/" | ":" | ";" | "," | "-" | "_" | "__" // Depth "Depth"?: string // Prefix "Prefix"?: string // Label "Label"?: string // Content Type "ContentType"?: string // Tags "Tags"?: string // Exclude feature flags "ExcludeFeatureFlags"?: bool // Delete key-values that are not included in the configuration // file "Strict"?: bool // Dry run "DryRun"?: bool // Import Mode "ImportMode"?: "All" | "Ignore-Match" }) ... }, { // Azure App Service manage // // Start, stop, restart, slot swap, slot delete, install site // extensions or enable continuous monitoring for an Azure App // Service "task"!: null | bool | number | =~"^AzureAppServiceManage@0$" | [...] | { ... } // Azure App Service manage inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription "azureSubscription"!: string // Action "Action"?: "Swap Slots" | "Start Azure App Service" | "Stop Azure App Service" | "Restart Azure App Service" | "Start Swap With Preview" | "Complete Swap" | "Cancel Swap" | "Delete Slot" | "Install Extensions" | "Enable Continuous Monitoring" | "Start all continuous webjobs" | "Stop all continuous webjobs" // App Service name "WebAppName"!: string // Specify Slot or App Service Environment "SpecifySlotOrASE"?: bool // Resource group "ResourceGroupName"?: string // Source Slot "SourceSlot"?: string // Swap with Production "SwapWithProduction"?: bool // Target Slot "TargetSlot"?: string // Preserve Vnet "PreserveVnet"?: bool // Slot "Slot"?: string // Install Extensions "ExtensionsList"?: string // Output variable "OutputVariable"?: string // Resource Group name for Application Insights "AppInsightsResourceGroupName"?: string // Application Insights resource name "ApplicationInsightsResourceName"?: string // Application Insights web test name "ApplicationInsightsWebTestName"?: string }) ... }, { // Kubelogin tool installer // // Helps to install kubelogin "task"!: null | bool | number | =~"^KubeloginInstaller@0$" | [...] | { ... } // Kubelogin tool installer inputs "inputs"?: null | bool | number | string | [...] | close({ // kubelogin version "kubeloginVersion"?: string // GitHub Connection "gitHubConnection"?: string }) ... }, { // Install Azure Func Core Tools // // Install Azure Func Core Tools "task"!: null | bool | number | =~"^FuncToolsInstaller@0$" | [...] | { ... } // Install Azure Func Core Tools inputs "inputs"?: null | bool | number | string | [...] | close({ // Version "version"?: string }) ... }, { // File transform // // Replace tokens with variable values in XML or JSON // configuration files "task"!: null | bool | number | =~"^FileTransform@2$" | [...] | { ... } // File transform inputs "inputs"?: null | bool | number | string | [...] | close({ // Package or folder "folderPath"?: string // XML transformation "enableXmlTransform"?: bool // XML Transformation rules "xmlTransformationRules"?: string // JSON target files "jsonTargetFiles"?: string // XML target files "xmlTargetFiles"?: string // Error on empty files and invalid substitution. "errorOnInvalidSubstitution"?: bool }) ... }, { // File transform // // Replace tokens with variable values in XML or JSON // configuration files "task"!: null | bool | number | =~"^FileTransform@1$" | [...] | { ... } // File transform inputs "inputs"?: null | bool | number | string | [...] | close({ // Package or folder "folderPath"?: string // XML transformation "enableXmlTransform"?: bool // Transformation rules "xmlTransformationRules"?: string // File format "fileType"?: "xml" | "json" // Target files "targetFiles"?: string }) ... }, { // Extract files // // Extract a variety of archive and compression files such as .7z, // .rar, .tar.gz, and .zip "task"!: null | bool | number | =~"^ExtractFiles@1$" | [...] | { ... } // Extract files inputs "inputs"!: null | bool | number | string | [...] | close({ // Archive file patterns "archiveFilePatterns"?: string // Destination folder "destinationFolder"!: string // Clean destination folder before extracting "cleanDestinationFolder"?: bool // Overwrite existing files "overwriteExistingFiles"?: bool // Path to 7z utility "pathToSevenZipTool"?: string }) ... }, { // Xamarin.Android // // Build an Android app with Xamarin "task"!: null | bool | number | =~"^XamarinAndroid@1$" | [...] | { ... } // Xamarin.Android inputs "inputs"?: null | bool | number | string | [...] | close({ // Project "projectFile"?: string // Target "target"?: string // Output directory "outputDirectory"?: string // Configuration "configuration"?: string // Create app package "createAppPackage"?: bool // Clean "clean"?: bool // MSBuild "msbuildLocationOption"?: "version" | "location" // MSBuild version "msbuildVersionOption"?: "latest" | "17.0" | "16.0" | "15.0" | "14.0" | "12.0" | "4.0" // MSBuild location "msbuildFile"?: string // MSBuild architecture "msbuildArchitectureOption"?: "x86" | "x64" // Additional arguments "msbuildArguments"?: string // Select JDK to use for the build "jdkOption"?: "JDKVersion" | "Path" // JDK version "jdkVersionOption"?: "default" | "1.11" | "1.10" | "1.9" | "1.8" | "1.7" | "1.6" // JDK path "jdkDirectory"?: string // JDK architecture "jdkArchitectureOption"?: "x86" | "x64" }) ... }, { // Copy and Publish Build Artifacts // // [DEPRECATED] Use the Copy Files task and the Publish Build // Artifacts task instead "task"!: null | bool | number | =~"^CopyPublishBuildArtifacts@1$" | [...] | { ... } // Copy and Publish Build Artifacts inputs "inputs"!: null | bool | number | string | [...] | close({ // Copy Root "CopyRoot"?: string // Contents "Contents"!: string // Artifact Name "ArtifactName"!: string // Artifact Type "ArtifactType"!: "Container" | "FilePath" // Path "TargetPath"?: string }) ... }, { // Download package // // Download a package from a package management feed in Azure // Artifacts "task"!: null | bool | number | =~"^DownloadPackage@0$" | [...] | { ... } // Download package inputs "inputs"!: null | bool | number | string | [...] | close({ // Feed "feed"!: string // Package "definition"!: string // Version "version"!: string // Destination directory "downloadPath"?: string }) ... }, { // Download package // // Download a package from a package management feed in Azure // Artifacts "task"!: null | bool | number | =~"^DownloadPackage@1$" | [...] | { ... } // Download package inputs "inputs"!: null | bool | number | string | [...] | close({ // Package Type "packageType"?: "maven" | "npm" | "nuget" | "pypi" | "upack" | "cargo" // Feed "feed"!: string // View "view"?: string // Package "definition"!: string // Version "version"!: string // Files "files"?: string // Extract package contents "extract"?: bool // Destination directory "downloadPath"?: string }) ... }, { // Azure Resource Group Deployment // // Deploy, start, stop, delete Azure Resource Groups "task"!: null | bool | number | =~"^AzureResourceGroupDeployment@1$" | [...] | { ... } // Azure Resource Group Deployment inputs "inputs"?: null | bool | number | string | [...] | close({ // Azure Connection Type "ConnectedServiceNameSelector"?: "ConnectedServiceName" | "ConnectedServiceNameClassic" // Azure Subscription "ConnectedServiceName"?: string // Azure Classic Subscription "ConnectedServiceNameClassic"?: string // Action "action"?: "Create Or Update Resource Group" | "Select Resource Group" | "Start" | "Stop" | "Restart" | "Delete" | "DeleteRG" // Action "actionClassic"?: "Select Resource Group" // Resource Group "resourceGroupName"?: string // Cloud Service "cloudService"?: string // Location "location"?: "Australia East" | "Australia Southeast" | "Brazil South" | "Canada Central" | "Canada East" | "Central India" | "Central US" | "East Asia" | "East US" | "East US 2 " | "Japan East" | "Japan West" | "North Central US" | "North Europe" | "South Central US" | "South India" | "Southeast Asia" | "UK South" | "UK West" | "West Central US" | "West Europe" | "West India" | "West US" | "West US 2" // Template "csmFile"?: string // Template Parameters "csmParametersFile"?: string // Override Template Parameters "overrideParameters"?: string // Deployment Mode "deploymentMode"?: "Validation" | "Incremental" | "Complete" // Enable Deployment Prerequisites "enableDeploymentPrerequisitesForCreate"?: bool // Enable Deployment Prerequisites "enableDeploymentPrerequisitesForSelect"?: bool // Resource Group "outputVariable"?: string }) ... }, { // Azure resource group deployment // // Deploy an Azure Resource Manager (ARM) template to a resource // group and manage virtual machines "task"!: null | bool | number | =~"^AzureResourceGroupDeployment@2$" | [...] | { ... } // Azure resource group deployment inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription "azureSubscription"!: string // Action "action"?: "Create Or Update Resource Group" | "Select Resource Group" | "Start" | "Stop" | "StopWithDeallocate" | "Restart" | "Delete" | "DeleteRG" // Resource group "resourceGroupName"!: string // Location "location"?: string // Template location "templateLocation"?: "Linked artifact" | "URL of the file" // Template link "csmFileLink"?: string // Template parameters link "csmParametersFileLink"?: string // Template "csmFile"?: string // Template parameters "csmParametersFile"?: string // Override template parameters "overrideParameters"?: string // Deployment mode "deploymentMode"?: "Incremental" | "Complete" | "Validation" // Enable prerequisites "enableDeploymentPrerequisites"?: "None" | "ConfigureVMwithWinRM" | "ConfigureVMWithDGAgent" // Azure Pipelines service connection "teamServicesConnection"?: string // Team project "teamProject"?: string // Deployment Group "deploymentGroupName"?: string // Copy Azure VM tags to agents "copyAzureVMTags"?: bool // Run agent service as a user "runAgentServiceAsUser"?: bool // User name "userName"?: string // Password "password"?: string // VM details for WinRM "outputVariable"?: string // Deployment name "deploymentName"?: string // Deployment outputs "deploymentOutputs"?: string // Access service principal details in override parameters "addSpnToEnvironment"?: bool // Use individual output values without JSON.Stringify applied "useWithoutJSON"?: bool }) ... }, { // ARM template deployment // // Deploy an Azure Resource Manager (ARM) template to all the // deployment scopes "task"!: null | bool | number | =~"^AzureResourceManagerTemplateDeployment@3$" | [...] | { ... } // ARM template deployment inputs "inputs"!: null | bool | number | string | [...] | close({ // Deployment scope "deploymentScope"?: "Management Group" | "Subscription" | "Resource Group" // Azure Resource Manager connection "azureResourceManagerConnection"!: string // Subscription "subscriptionId"?: string // Action "action"?: "Create Or Update Resource Group" | "DeleteRG" // Resource group "resourceGroupName"?: string // Location "location"?: string // Template location "templateLocation"?: "Linked artifact" | "URL of the file" // Template link "csmFileLink"?: string // Template parameters link "csmParametersFileLink"?: string // Template "csmFile"?: string // Template parameters "csmParametersFile"?: string // Override template parameters "overrideParameters"?: string // Deployment mode "deploymentMode"?: "Incremental" | "Complete" | "Validation" // Deployment name "deploymentName"?: string // Deployment outputs "deploymentOutputs"?: string // Access service principal details in override parameters "addSpnToEnvironment"?: bool // Use individual output values without JSON.Stringify applied "useWithoutJSON"?: bool }) ... }, { // Invoke REST API // // Invoke REST API as a part of your process. "task"!: null | bool | number | =~"^InvokeRESTAPI@0$" | [...] | { ... } // Invoke REST API inputs "inputs"!: null | bool | number | string | [...] | close({ // Generic endpoint "serviceConnection"!: string // Method "method"?: "OPTIONS" | "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "TRACE" | "PATCH" // Headers "headers"?: string // Body "body"?: string // Url suffix string "urlSuffix"?: string // Complete based on "waitForCompletion"?: "true" | "false" // Success criteria "successCriteria"?: string }) ... }, { // Invoke REST API // // Invoke a REST API as a part of your pipeline. "task"!: null | bool | number | =~"^InvokeRESTAPI@1$" | [...] | { ... } // Invoke REST API inputs "inputs"?: null | bool | number | string | [...] | close({ // Connection type "connectionType"?: "connectedServiceName" | "connectedServiceNameARM" // Generic service connection "serviceConnection"?: string // Azure subscription "azureServiceConnection"?: string // Method "method"?: "OPTIONS" | "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "TRACE" | "PATCH" // Headers "headers"?: string // Body "body"?: string // URL suffix and parameters "urlSuffix"?: string // Completion event "waitForCompletion"?: "true" | "false" // Success criteria "successCriteria"?: string }) ... }, { // Archive Files // // Archive files using compression formats such as .7z, .rar, // .tar.gz, and .zip. "task"!: null | bool | number | =~"^ArchiveFiles@1$" | [...] | { ... } // Archive Files inputs "inputs"?: null | bool | number | string | [...] | close({ // Root folder (or file) to archive "rootFolder"?: string // Prefix root folder name to archive paths "includeRootFolder"?: bool // Archive type "archiveType"?: "default" | "7z" | "tar" | "wim" // Tar compression "tarCompression"?: "gz" | "bz2" | "xz" | "none" // Archive file to create "archiveFile"?: string // Replace existing archive "replaceExistingArchive"?: bool }) ... }, { // Archive files // // Compress files into .7z, .tar.gz, or .zip "task"!: null | bool | number | =~"^ArchiveFiles@2$" | [...] | { ... } // Archive files inputs "inputs"?: null | bool | number | string | [...] | close({ // Root folder or file to archive "rootFolderOrFile"?: string // Prepend root folder name to archive paths "includeRootFolder"?: bool // Archive type "archiveType"?: "zip" | "7z" | "tar" | "wim" // 7z compression "sevenZipCompression"?: "ultra" | "maximum" | "normal" | "fast" | "fastest" | "none" // Tar compression "tarCompression"?: "gz" | "bz2" | "xz" | "none" // Archive file to create "archiveFile"?: string // Replace existing archive "replaceExistingArchive"?: bool // Force verbose output "verbose"?: bool // Force quiet output "quiet"?: bool }) ... }, { // GitHub Comment // // Write a comment to your Github entity i.e. issue or a Pull // Request (PR) "task"!: null | bool | number | =~"^GitHubComment@0$" | [...] | { ... } // GitHub Comment inputs "inputs"!: null | bool | number | string | [...] | close({ // GitHub connection (OAuth or PAT) "gitHubConnection"!: string // Repository "repositoryName"?: string // ID of the github pr/issue "id"?: string // Comment "comment"?: string }) ... }, { // Copy files // // Copy files from a source folder to a target folder using // patterns matching file paths (not folder paths) "task"!: null | bool | number | =~"^CopyFiles@2$" | [...] | { ... } // Copy files inputs "inputs"!: null | bool | number | string | [...] | close({ // Source Folder "SourceFolder"?: string // Contents "Contents"?: string // Target Folder "TargetFolder"!: string // Clean Target Folder "CleanTargetFolder"?: bool // Overwrite "OverWrite"?: bool // Flatten Folders "flattenFolders"?: bool // Preserve Target Timestamp "preserveTimestamp"?: bool // Retry count to copy the file "retryCount"?: string // Delay between two retries. "delayBetweenRetries"?: string // Ignore errors during creation of target folder. "ignoreMakeDirErrors"?: bool }) ... }, { // Copy Files // // Copy files from source folder to target folder using minimatch // patterns (The minimatch patterns will only match file paths, // not folder paths) "task"!: null | bool | number | =~"^CopyFiles@1$" | [...] | { ... } // Copy Files inputs "inputs"!: null | bool | number | string | [...] | close({ // Source Folder "SourceFolder"?: string // Contents "Contents"?: string // Target Folder "TargetFolder"!: string // Clean Target Folder "CleanTargetFolder"?: bool // Overwrite "OverWrite"?: bool // Flatten Folders "flattenFolders"?: bool }) ... }, { // Azure Database for MySQL deployment // // Run your scripts and make changes to your Azure Database for // MySQL "task"!: null | bool | number | =~"^AzureMysqlDeployment@1$" | [...] | { ... } // Azure Database for MySQL deployment inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure Subscription "azureSubscription"!: string // Host Name "ServerName"!: string // Database Name "DatabaseName"?: string // Server Admin Login "SqlUsername"!: string // Password "SqlPassword"!: string // Type "TaskNameSelector"?: "SqlTaskFile" | "InlineSqlTask" // MySQL Script "SqlFile"?: string // Inline MySQL Script "SqlInline"?: string // Additional MySQL Arguments "SqlAdditionalArguments"?: string // Specify Firewall Rules Using "IpDetectionMethod"?: "AutoDetect" | "IPAddressRange" // Start IP Address "StartIpAddress"?: string // End IP Address "EndIpAddress"?: string // Delete Rule After Task Ends "DeleteFirewallRule"?: bool }) ... }, { // npm // // Install and publish npm packages, or run an npm command. // Supports npmjs.com and authenticated registries like Azure // Artifacts. "task"!: null | bool | number | =~"^Npm@1$" | [...] | { ... } // npm inputs "inputs"?: null | bool | number | string | [...] | close({ // Command "command"?: "ci" | "install" | "publish" | "custom" // Working folder that contains package.json "workingDir"?: string // Verbose logging "verbose"?: bool // Command and arguments "customCommand"?: string // Registries to use "customRegistry"?: "useNpmrc" | "useFeed" // Use packages from this Azure Artifacts/TFS registry "customFeed"?: string // Credentials for registries outside this organization/collection "customEndpoint"?: string // Registry location "publishRegistry"?: "useExternalRegistry" | "useFeed" // Target registry "publishFeed"?: string // Publish pipeline metadata "publishPackageMetadata"?: bool // External Registry "publishEndpoint"?: string }) ... }, { // npm // // Run an npm command. Use NpmAuthenticate@0 task for latest // capabilities. "task"!: null | bool | number | =~"^Npm@0$" | [...] | { ... } // npm inputs "inputs"?: null | bool | number | string | [...] | close({ // working folder "cwd"?: string // npm command "command"?: string // arguments "arguments"?: string }) ... }, { // Deploy Azure Static Web App // // [PREVIEW] Build and deploy an Azure Static Web App "task"!: null | bool | number | =~"^AzureStaticWebApp@0$" | [...] | { ... } // Deploy Azure Static Web App inputs "inputs"?: null | bool | number | string | [...] | close({ // Working directory "workingDirectory"?: string // App location "app_location"?: string // App build command "app_build_command"?: string // Output location "output_location"?: string // Api location "api_location"?: string // Api build command "api_build_command"?: string // Routes location "routes_location"?: string // Config file location "config_file_location"?: string // Skip app build "skip_app_build"?: bool // Skip api build "skip_api_build"?: bool // Set static export "is_static_export"?: bool // Verbose "verbose"?: bool // Build timeout in minutes "build_timeout_in_minutes"?: int // Azure Static Web Apps api token "azure_static_web_apps_api_token"?: string // Deployment Environment "deployment_environment"?: string // Production Branch "production_branch"?: string // Data api location "data_api_location"?: string // Azure Access Token "azure_access_token"?: string // Default Hostname "default_hostname"?: string }) ... }, { // Node.js tool installer // // Finds or downloads and caches the specified version spec of // Node.js and adds it to the PATH "task"!: null | bool | number | =~"^NodeTool@0$" | [...] | { ... } // Node.js tool installer inputs "inputs"?: null | bool | number | string | [...] | close({ // Source of version "versionSource"?: "spec" | "fromFile" // Version Spec "versionSpec"?: string // Path to the .nvmrc file "versionFilePath"?: string // Check for Latest Version "checkLatest"?: bool // Use 32 bit version on x64 agents "force32bit"?: bool // Set source for Node.js binaries "nodejsMirror"?: string // Set retry count when nodes downloads failed "retryCountOnDownloadFails"?: string // Set delay between retries "delayBetweenRetries"?: string }) ... }, { // [Deprecated] SQL Server database deploy // // Deploy a SQL Server database using DACPAC "task"!: null | bool | number | =~"^SqlServerDacpacDeployment@1$" | [...] | { ... } // [Deprecated] SQL Server database deploy inputs "inputs"!: null | bool | number | string | [...] | close({ // Machines "EnvironmentName"!: string // Admin Login "AdminUserName"?: string // Password "AdminPassword"?: string // Protocol "Protocol"?: "Http" | "Https" // Test Certificate "TestCertificate"?: bool // DACPAC File "DacpacFile"!: string // Specify SQL Using "TargetMethod"?: "server" | "connectionString" | "publishProfile" // Server Name "ServerName"?: string // Database Name "DatabaseName"?: string // SQL Username "SqlUsername"?: string // SQL Password "SqlPassword"?: string // Connection String "ConnectionString"?: string // Publish Profile "PublishProfile"?: string // Additional Arguments "AdditionalArguments"?: string // Deploy in Parallel "DeployInParallel"?: bool // Select Machines By "ResourceFilteringMethod"?: "machineNames" | "tags" // Deploy to Machines "MachineFilter"?: string }) ... }, { // Visual Studio test platform installer // // Acquire the test platform from nuget.org or the tool cache. // Satisfies the ‘vstest’ demand and can be used for running // tests and collecting diagnostic data using the Visual Studio // Test task. "task"!: null | bool | number | =~"^VisualStudioTestPlatformInstaller@1$" | [...] | { ... } // Visual Studio test platform installer inputs "inputs"?: null | bool | number | string | [...] | close({ // Package Feed "packageFeedSelector"?: "nugetOrg" | "customFeed" | "netShare" // Version "versionSelector"?: "latestPreRelease" | "latestStable" | "specificVersion" // Test Platform Version "testPlatformVersion"?: string // Package Source "customFeed"?: string // User Name "username"?: string // Password "password"?: string // UNC Path "netShare"?: string }) ... }, { // Publish To Azure Service Bus // // Sends a message to Azure Service Bus using a service connection // (no agent is required) "task"!: null | bool | number | =~"^PublishToAzureServiceBus@1$" | [...] | { ... } // Publish To Azure Service Bus inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure Service Bus service connection "azureSubscription"!: string // Message body "messageBody"?: string // Session Id "sessionId"?: string // Sign the Message "signPayload"?: bool // Certificate Variable "certificateString"?: string // Signature Property Key "signatureKey"?: string // Wait for task completion "waitForCompletion"?: bool // Use .NET data contract serializer "useDataContractSerializer"?: bool }) ... }, { // Publish To Azure Service Bus // // Sends a message to Azure Service Bus using an Azure Resource // Manager service connection (no agent is required) "task"!: null | bool | number | =~"^PublishToAzureServiceBus@2$" | [...] | { ... } // Publish To Azure Service Bus inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure Resource Manager service connection "azureSubscription"!: string // Azure Service Bus Queue name "serviceBusQueueName"!: string // Azure Service Bus Namespace "serviceBusNamespace"!: string // Message body "messageBody"?: string // Session Id "sessionId"?: string // Sign the Message "signPayload"?: bool // Certificate Variable "certificateString"?: string // Signature Property Key "signatureKey"?: string // Wait for task completion "waitForCompletion"?: bool // Use .NET data contract serializer "useDataContractSerializer"?: bool }) ... }, { // Publish To Azure Service Bus // // Sends a message to azure service bus using a service connection // (no agent required). "task"!: null | bool | number | =~"^PublishToAzureServiceBus@0$" | [...] | { ... } // Publish To Azure Service Bus inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure service bus connection "azureSubscription"!: string // Message body "messageBody"?: string // Wait for task completion "waitForCompletion"?: bool }) ... }, { // Deploy to Kubernetes // // Use Kubernetes manifest files to deploy to clusters or even // bake the manifest files to be used for deployments using Helm // charts "task"!: null | bool | number | =~"^KubernetesManifest@0$" | [...] | { ... } // Deploy to Kubernetes inputs "inputs"?: null | bool | number | string | [...] | close({ // Action "action"?: "bake" | "createSecret" | "delete" | "deploy" | "patch" | "promote" | "scale" | "reject" // Kubernetes service connection "kubernetesServiceConnection"?: string // Namespace "namespace"?: string // Strategy "strategy"?: "canary" | "none" // Traffic split method "trafficSplitMethod"?: "pod" | "smi" // Percentage "percentage"?: string // Baseline and canary replicas "baselineAndCanaryReplicas"?: string // Manifests "manifests"?: string // Containers "containers"?: string // ImagePullSecrets "imagePullSecrets"?: string // Render Engine "renderType"?: "helm" | "kompose" | "kustomize" // Path to docker compose file "dockerComposeFile"?: string // Helm Chart "helmChart"?: string // Helm Release Name "releaseName"?: string // Override Files "overrideFiles"?: string // Overrides "overrides"?: string // Kustomization Path "kustomizationPath"?: string // Resource to patch "resourceToPatch"?: "file" | "name" // File path "resourceFileToPatch"?: string // Kind "kind"?: "deployment" | "replicaset" | "statefulset" // Name "name"?: string // Replica count "replicas"?: string // Merge Strategy "mergeStrategy"?: "json" | "merge" | "strategic" // Arguments "arguments"?: string // Patch "patch"?: string // Type of secret "secretType"?: "dockerRegistry" | "generic" // Secret name "secretName"?: string // Arguments "secretArguments"?: string // Docker registry service connection "dockerRegistryEndpoint"?: string // Timeout for rollout status "rolloutStatusTimeout"?: string }) ... }, { // Deploy to Kubernetes // // Use Kubernetes manifest files to deploy to clusters or even // bake the manifest files to be used for deployments using Helm // charts "task"!: null | bool | number | =~"^KubernetesManifest@1$" | [...] | { ... } // Deploy to Kubernetes inputs "inputs"?: null | bool | number | string | [...] | close({ // Action "action"?: "bake" | "createSecret" | "delete" | "deploy" | "patch" | "promote" | "scale" | "reject" // Service connection type "connectionType"?: "azureResourceManager" | "kubernetesServiceConnection" // Kubernetes service connection "kubernetesServiceConnection"?: string // Azure subscription "azureSubscriptionConnection"?: string // Resource group "azureResourceGroup"?: string // Kubernetes cluster "kubernetesCluster"?: string // Use cluster admin credentials "useClusterAdmin"?: bool // Namespace "namespace"?: string // Strategy "strategy"?: "canary" | "none" // Traffic split method "trafficSplitMethod"?: "pod" | "smi" // Percentage "percentage"?: string // Baseline and canary replicas "baselineAndCanaryReplicas"?: string // Manifests "manifests"?: string // Containers "containers"?: string // ImagePullSecrets "imagePullSecrets"?: string // Render Engine "renderType"?: "helm" | "kompose" | "kustomize" // Path to docker compose file "dockerComposeFile"?: string // Helm Chart "helmChart"?: string // Helm Release Name "releaseName"?: string // Override Files "overrideFiles"?: string // Overrides "overrides"?: string // Kustomization Path "kustomizationPath"?: string // Resource to patch "resourceToPatch"?: "file" | "name" // File path "resourceFileToPatch"?: string // Kind "kind"?: "deployment" | "replicaset" | "statefulset" // Name "name"?: string // Replica count "replicas"?: string // Merge Strategy "mergeStrategy"?: "json" | "merge" | "strategic" // Arguments "arguments"?: string // Patch "patch"?: string // Type of secret "secretType"?: "dockerRegistry" | "generic" // Secret name "secretName"?: string // Arguments "secretArguments"?: string // Docker registry service connection "dockerRegistryEndpoint"?: string // Timeout for rollout status "rolloutStatusTimeout"?: string // Resource type "resourceType"?: string }) ... }, { // Download build artifacts // // Download files that were saved as artifacts of a completed // build "task"!: null | bool | number | =~"^DownloadBuildArtifacts@0$" | [...] | { ... } // Download build artifacts inputs "inputs"?: null | bool | number | string | [...] | close({ // Download artifacts produced by "buildType"?: "current" | "specific" // Project "project"?: string // Build pipeline "pipeline"?: string // When appropriate, download artifacts from the triggering build. "specificBuildWithTriggering"?: bool // Build version to download "buildVersionToDownload"?: "latest" | "latestFromBranch" | "specific" // Download artifacts even from partially succeeded builds. "allowPartiallySucceededBuilds"?: bool // Branch name "branchName"?: string // Build "buildId"?: string // Build Tags "tags"?: string // Download type "downloadType"?: "single" | "specific" // Artifact name "artifactName"?: string // Matching pattern "itemPattern"?: string // Destination directory "downloadPath"?: string // Clean destination folder "cleanDestinationFolder"?: bool // Parallelization limit "parallelizationLimit"?: string // Check downloaded files "checkDownloadedFiles"?: bool // Retry count "retryDownloadCount"?: string // Retry count for redirect download "retryRedirectDownloadCount"?: string // Extract all files that are stored inside tar archives "extractTars"?: bool }) ... }, { // Download build artifacts // // Download files that were saved as artifacts of a completed // build "task"!: null | bool | number | =~"^DownloadBuildArtifacts@1$" | [...] | { ... } // Download build artifacts inputs "inputs"?: null | bool | number | string | [...] | close({ // Download artifacts produced by "buildType"?: "current" | "specific" // Project "project"?: string // Build pipeline "pipeline"?: string // When appropriate, download artifacts from the triggering build. "specificBuildWithTriggering"?: bool // Build version to download "buildVersionToDownload"?: "latest" | "latestFromBranch" | "specific" // Download artifacts even from partially succeeded builds. "allowPartiallySucceededBuilds"?: bool // Branch name "branchName"?: string // Build "buildId"?: string // Build Tags "tags"?: string // Download type "downloadType"?: "single" | "specific" // Artifact name "artifactName"?: string // Matching pattern "itemPattern"?: string // Destination directory "downloadPath"?: string // Clean destination folder "cleanDestinationFolder"?: bool // Parallelization limit "parallelizationLimit"?: string // Check downloaded files "checkDownloadedFiles"?: bool // Retry count "retryDownloadCount"?: string // Extract all files that are stored inside tar archives "extractTars"?: bool }) ... }, { // CocoaPods // // Install CocoaPods dependencies for Swift and Objective-C Cocoa // projects "task"!: null | bool | number | =~"^CocoaPods@0$" | [...] | { ... } // CocoaPods inputs "inputs"?: null | bool | number | string | [...] | close({ // Working directory "workingDirectory"?: string // Force repo update "forceRepoUpdate"?: bool // Project directory "projectDirectory"?: string }) ... }, { // Azure Spring Apps // // Deploy applications to Azure Spring Apps and manage // deployments. "task"!: null | bool | number | =~"^AzureSpringCloud@0$" | [...] | { ... } // Azure Spring Apps inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription "azureSubscription"!: string // Action "Action"?: "Deploy" | "Set Production" | "Delete Staging Deployment" // Azure Spring Apps Name "AzureSpringCloud"!: string // App "AppName"!: string // Deployment Type "DeploymentType"?: "Artifacts" | "CustomContainer" // Use Staging Deployment "UseStagingDeployment"?: bool // Create a new staging deployment if one does not exist. "CreateNewDeployment"?: bool // Deployment "DeploymentName"?: string // Package or folder "Package"?: string // Builder "Builder"?: string // Registry Server "RegistryServer"?: string // Registry Username "RegistryUsername"?: string // Registry Password "RegistryPassword"?: string // Image Name and Tag "ImageName"?: string // Image Command "ImageCommand"?: string // Image Arguments "ImageArgs"?: string // Language Framework "ImageLanguageFramework"?: "springboot" | "" // Environment Variables "EnvironmentVariables"?: string // JVM Options "JvmOptions"?: string // Runtime Version "RuntimeVersion"?: "Java_8" | "Java_11" | "Java_17" | "Java_21" | "NetCore_31" // Main Entry Path "DotNetCoreMainEntryPath"?: string // Version "Version"?: string }) ... }, { // Azure Web App // // Deploy an Azure Web App for Linux or Windows "task"!: null | bool | number | =~"^AzureWebApp@1$" | [...] | { ... } // Azure Web App inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription "azureSubscription"!: string // App type "appType"!: "webApp" | "webAppLinux" // App name "appName"!: string // Deploy to Slot or App Service Environment "deployToSlotOrASE"?: bool // Resource group "resourceGroupName"?: string // Slot "slotName"?: string // Package or folder "package"?: string // Custom Deploy Folder "customDeployFolder"?: string // Runtime stack "runtimeStack"?: "DOTNETCORE|9.0" | "DOTNETCORE|8.0" | "DOTNETCORE|7.0" | "DOTNETCORE|6.0" | "NODE|22-lts" | "NODE|20-lts" | "NODE|18-lts" | "NODE|16-lts" | "PYTHON|3.13" | "PYTHON|3.12" | "PYTHON|3.11" | "PYTHON|3.10" | "PYTHON|3.9" | "PYTHON|3.8" | "PHP|8.3" | "PHP|8.2" | "PHP|8.1" | "PHP|8.0" | "JAVA|21-java21" | "JAVA|17-java17" | "JAVA|11-java11" | "JAVA|8-jre8" | "JBOSSEAP|8-java17" | "JBOSSEAP|8-java11" | "JBOSSEAP|7-java17" | "JBOSSEAP|7-java11" | "JBOSSEAP|7-java8" | "TOMCAT|10.1-java21" | "TOMCAT|10.1-java17" | "TOMCAT|10.1-java11" | "TOMCAT|10.0-java17" | "TOMCAT|10.0-java11" | "TOMCAT|10.0-jre8" | "TOMCAT|9.0-java21" | "TOMCAT|9.0-java17" | "TOMCAT|9.0-java11" | "TOMCAT|9.0-jre8" | "TOMCAT|8.5-java11" | "TOMCAT|8.5-jre8" // Startup command "startUpCommand"?: string // Generate web.config parameters for Python, Node.js, Go and Java // apps "customWebConfig"?: string // App settings "appSettings"?: string // Configuration settings "configurationStrings"?: string // Deployment method "deploymentMethod"?: "auto" | "zipDeploy" | "runFromPackage" }) ... }, { // Azure CLI // // Run Azure CLI commands against an Azure subscription in a Shell // script when running on Linux agent or Batch script when // running on Windows agent. "task"!: null | bool | number | =~"^AzureCLI@1$" | [...] | { ... } // Azure CLI inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription "azureSubscription"!: string // Script Location "scriptLocation"?: "inlineScript" | "scriptPath" // Script Path "scriptPath"?: string // Inline Script "inlineScript"?: string // Arguments "arguments"?: string // Access service principal details in script "addSpnToEnvironment"?: bool // Use global Azure CLI configuration "useGlobalConfig"?: bool // Working Directory "workingDirectory"?: string // Fail on Standard Error "failOnStandardError"?: bool }) ... }, { // Azure CLI // // Run Azure CLI commands against an Azure subscription in a // PowerShell Core/Shell script when running on Linux agent or // PowerShell/PowerShell Core/Batch script when running on // Windows agent. "task"!: null | bool | number | =~"^AzureCLI@2$" | [...] | { ... } // Azure CLI inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure Resource Manager connection "azureSubscription"!: string // Script Type "scriptType"!: "ps" | "pscore" | "batch" | "bash" // Script Location "scriptLocation"?: "inlineScript" | "scriptPath" // Script Path "scriptPath"?: string // Inline Script "inlineScript"?: string // Script Arguments "arguments"?: string // ErrorActionPreference "powerShellErrorActionPreference"?: "stop" | "continue" | "silentlyContinue" // Access service principal details in script "addSpnToEnvironment"?: bool // Use global Azure CLI configuration "useGlobalConfig"?: bool // Working Directory "workingDirectory"?: string // Fail on Standard Error "failOnStandardError"?: bool // Ignore $LASTEXITCODE "powerShellIgnoreLASTEXITCODE"?: bool // az login output visibility "visibleAzLogin"?: bool // [Experimental] Keep Azure CLI session active "keepAzSessionActive"?: bool }) ... }, { // Azure CLI Preview // // Run a Shell or Batch script with Azure CLI commands against an // azure subscription "task"!: null | bool | number | =~"^AzureCLI@0$" | [...] | { ... } // Azure CLI Preview inputs "inputs"?: null | bool | number | string | [...] | close({ // Azure Connection Type "connectedServiceNameSelector"?: "connectedServiceName" | "connectedServiceNameARM" // AzureRM Subscription "connectedServiceNameARM"?: string // Azure Classic Subscription "connectedServiceName"?: string // Script Location "scriptLocation"?: "inlineScript" | "scriptPath" // Script Path "scriptPath"?: string // Inline Script "inlineScript"?: string // Arguments "args"?: string // Working Directory "cwd"?: string // Fail on Standard Error "failOnStandardError"?: bool }) ... }, { // Azure CLI // // Run Azure CLI commands against an Azure subscription in a // PowerShell Core/Shell script when running on Linux agent or // PowerShell/PowerShell Core/Batch script when running on // Windows agent. "task"!: null | bool | number | =~"^AzureCLI@2$" | [...] | { ... } // Azure CLI inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure Resource Manager connection "azureSubscription"!: string // Script Type "scriptType"!: "ps" | "pscore" | "batch" | "bash" // Script Location "scriptLocation"?: "inlineScript" | "scriptPath" // Script Path "scriptPath"?: string // Inline Script "inlineScript"?: string // Script Arguments "arguments"?: string // ErrorActionPreference "powerShellErrorActionPreference"?: "stop" | "continue" | "silentlyContinue" // Access service principal details in script "addSpnToEnvironment"?: bool // Use global Azure CLI configuration "useGlobalConfig"?: bool // Working Directory "workingDirectory"?: string // Fail on Standard Error "failOnStandardError"?: bool // Ignore $LASTEXITCODE "powerShellIgnoreLASTEXITCODE"?: bool // az login output visibility "visibleAzLogin"?: bool // [Experimental] Keep Azure CLI session active "keepAzSessionActive"?: bool }) ... }, { // GitHub Release // // Create, edit, or delete a GitHub release "task"!: null | bool | number | =~"^GitHubRelease@1$" | [...] | { ... } // GitHub Release inputs "inputs"!: null | bool | number | string | [...] | close({ // GitHub connection (OAuth or PAT) "gitHubConnection"!: string // Repository "repositoryName"?: string // Action "action"?: "create" | "edit" | "delete" // Target "target"?: string // Tag source "tagSource"?: "gitTag" | "userSpecifiedTag" // Tag Pattern "tagPattern"?: string // Tag "tag"?: string // Release title "title"?: string // Release notes source "releaseNotesSource"?: "filePath" | "inline" // Release notes file path "releaseNotesFilePath"?: string // Release notes "releaseNotesInline"?: string // Assets "assets"?: string // Asset upload mode "assetUploadMode"?: "delete" | "replace" // Draft release "isDraft"?: bool // Pre-release "isPreRelease"?: bool // Add changelog "addChangeLog"?: bool // Compare to "changeLogCompareToRelease"?: "lastFullRelease" | "lastNonDraftRelease" | "lastNonDraftReleaseByTag" // Release Tag "changeLogCompareToReleaseTag"?: string // Changelog type "changeLogType"?: "commitBased" | "issueBased" // Categories "changeLogLabels"?: string }) ... }, { // GitHub Release // // Create, edit, or delete a GitHub release "task"!: null | bool | number | =~"^GitHubRelease@0$" | [...] | { ... } // GitHub Release inputs "inputs"!: null | bool | number | string | [...] | close({ // GitHub connection (OAuth or PAT) "gitHubConnection"!: string // Repository "repositoryName"?: string // Action "action"?: "create" | "edit" | "delete" // Target "target"?: string // Tag source "tagSource"?: "auto" | "manual" // Tag Pattern "tagPattern"?: string // Tag "tag"?: string // Release title "title"?: string // Release notes source "releaseNotesSource"?: "file" | "input" // Release notes file path "releaseNotesFile"?: string // Release notes "releaseNotes"?: string // Assets "assets"?: string // Asset upload mode "assetUploadMode"?: "delete" | "replace" // Draft release "isDraft"?: bool // Pre-release "isPreRelease"?: bool // Add changelog "addChangeLog"?: bool // Compare to "changeLogCompareToRelease"?: "lastFullRelease" | "lastNonDraftRelease" | "lastNonDraftReleaseByTag" // Release Tag "changeLogCompareToReleaseTag"?: string // Changelog type "changeLogType"?: "commitBased" | "issueBased" // Categories "changeLogLabels"?: string }) ... }, { // cURL Upload Files // // Use cURL to upload files with FTP, FTPS, SFTP, HTTP, and more. "task"!: null | bool | number | =~"^cURLUploader@1$" | [...] | { ... } // cURL Upload Files inputs "inputs"!: null | bool | number | string | [...] | close({ // Files "files"!: string // Username "username"?: string // Password "password"?: string // URL "url"!: string // Optional Arguments "options"?: string // Redirect Standard Error to Standard Out "redirectStderr"?: bool }) ... }, { // cURL upload files // // Use cURL's supported protocols to upload files "task"!: null | bool | number | =~"^cURLUploader@2$" | [...] | { ... } // cURL upload files inputs "inputs"!: null | bool | number | string | [...] | close({ // Files "files"!: string // Authentication Method "authType"?: "ServiceEndpoint" | "UserAndPass" // Service Connection "serviceEndpoint"?: string // Username "username"?: string // Password "password"?: string // URL "url"?: string // Remote Directory "remotePath"?: string // Optional Arguments "options"?: string // Redirect Standard Error to Standard Out "redirectStderr"?: bool }) ... }, { // Azure App Service Settings // // Update/Add App settings an Azure Web App for Linux or Windows "task"!: null | bool | number | =~"^AzureAppServiceSettings@1$" | [...] | { ... } // Azure App Service Settings inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription "azureSubscription"!: string // App Service name "appName"!: string // Resource group "resourceGroupName"!: string // Slot "slotName"?: string // App settings "appSettings"?: string // General settings "generalSettings"?: string // Connection Strings "connectionStrings"?: string }) ... }, { // Universal packages // // Download or publish Universal Packages "task"!: null | bool | number | =~"^UniversalPackages@0$" | [...] | { ... } // Universal packages inputs "inputs"?: null | bool | number | string | [...] | close({ // Command "command"?: "download" | "publish" // Destination directory "downloadDirectory"?: string // Feed location "feedsToUse"?: "internal" | "external" // organization/collection connection "externalFeedCredentials"?: string // Feed "vstsFeed"?: string // Package name "vstsFeedPackage"?: string // Version "vstsPackageVersion"?: string // Feed (or Project/Feed if the feed was created in a project) "feedDownloadExternal"?: string // Package name "packageDownloadExternal"?: string // Version "versionDownloadExternal"?: string // Path to file(s) to publish "publishDirectory"?: string // Feed location "feedsToUsePublish"?: "internal" | "external" // organization/collection connection "publishFeedCredentials"?: string // Destination Feed "vstsFeedPublish"?: string // Publish pipeline metadata "publishPackageMetadata"?: bool // Package name "vstsFeedPackagePublish"?: string // Feed (or Project/Feed if the feed was created in a project) "feedPublishExternal"?: string // Package name "packagePublishExternal"?: string // Version "versionOption"?: "major" | "minor" | "patch" | "custom" // Custom version "versionPublish"?: string // Description "packagePublishDescription"?: string // Verbosity "verbosity"?: "None" | "Trace" | "Debug" | "Information" | "Warning" | "Error" | "Critical" // Package Output Variable "publishedPackageVar"?: string }) ... }, { // Check Azure Policy compliance // // Security and compliance assessment for Azure Policy "task"!: null | bool | number | =~"^AzurePolicyCheckGate@0$" | [...] | { ... } // Check Azure Policy compliance inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription "azureSubscription"!: string // Resource group "ResourceGroupName"?: string // Resource name "Resources"?: string // Retry duration "RetryDuration"?: string }) ... }, { // Azure Function on Kubernetes // // Deploy Azure function to Kubernetes cluster. "task"!: null | bool | number | =~"^AzureFunctionOnKubernetes@0$" | [...] | { ... } // Azure Function on Kubernetes inputs "inputs"!: null | bool | number | string | [...] | close({ // Docker registry service connection "dockerRegistryServiceConnection"!: string // Kubernetes service connection "kubernetesServiceConnection"!: string // Kubernetes namespace "namespace"?: string // Secret Name "secretName"?: string // Docker Hub namespace "dockerHubNamespace"?: string // Application Name "appName"!: string // Function root directory "functionRootDirectory"?: string // Wait for stability "waitForStability"?: bool // Arguments "arguments"?: string }) ... }, { // Azure Function on Kubernetes // // Deploy Azure function to Kubernetes cluster. "task"!: null | bool | number | =~"^AzureFunctionOnKubernetes@1$" | [...] | { ... } // Azure Function on Kubernetes inputs "inputs"!: null | bool | number | string | [...] | close({ // Service connection type "connectionType"?: "Azure Resource Manager" | "Kubernetes Service Connection" // Docker registry service connection "dockerRegistryServiceConnection"!: string // Kubernetes service connection "kubernetesServiceConnection"?: string // Azure subscription "azureSubscriptionConnection"?: string // Resource group "azureResourceGroup"?: string // Kubernetes cluster "kubernetesCluster"?: string // Kubernetes namespace "namespace"?: string // Secret Name "secretName"?: string // Docker Hub namespace "dockerHubNamespace"?: string // Application Name "appName"!: string // Function root directory "functionRootDirectory"?: string // Wait for stability "waitForStability"?: bool // Arguments "arguments"?: string }) ... }, { // Shell script // // Run a shell script using Bash "task"!: null | bool | number | =~"^ShellScript@2$" | [...] | { ... } // Shell script inputs "inputs"!: null | bool | number | string | [...] | close({ // Script Path "scriptPath"!: string // Arguments "args"?: string // Specify Working Directory "disableAutoCwd"?: bool // Working Directory "cwd"?: string // Fail on Standard Error "failOnStandardError"?: bool }) ... }, { // Bash // // Run a Bash script on macOS, Linux, or Windows "task"!: null | bool | number | =~"^Bash@3$" | [...] | { ... } // Bash inputs "inputs"?: null | bool | number | string | [...] | close({ // Type "targetType"?: "filePath" | "inline" // Script Path "filePath"?: string // Arguments "arguments"?: string // Script "script"?: string // Working Directory "workingDirectory"?: string // Fail on Standard Error "failOnStderr"?: bool // Set value for BASH_ENV environment variable "bashEnvValue"?: string }) ... }, { // Publish build artifacts // // Publish build artifacts to Azure Pipelines or a Windows file // share "task"!: null | bool | number | =~"^PublishBuildArtifacts@1$" | [...] | { ... } // Publish build artifacts inputs "inputs"?: null | bool | number | string | [...] | close({ // Path to publish "PathtoPublish"?: string // Artifact name "ArtifactName"?: string // Artifact publish location "publishLocation"?: "Container" | "FilePath" // Max Artifact Size "MaxArtifactSize"?: int // File share path "TargetPath"?: string // Parallel copy "Parallel"?: bool // Parallel count "ParallelCount"?: int // Tar the artifact before uploading "StoreAsTar"?: bool }) ... }, { // Install SSH key // // Install an SSH key prior to a build or deployment "task"!: null | bool | number | =~"^InstallSSHKey@0$" | [...] | { ... } // Install SSH key inputs "inputs"!: null | bool | number | string | [...] | close({ // Known Hosts Entry "knownHostsEntry"!: string // SSH Public Key "sshPublicKey"?: string // SSH Passphrase "sshPassphrase"?: string // SSH Key "sshKeySecureFile"!: string // Add entry to SSH config "addEntryToConfig"?: bool // Alias "configHostAlias"?: string // Host name "configHostname"?: string // User "configUser"?: string // Port "configPort"?: string }) ... }, { // Azure VM scale set deployment // // Deploy a virtual machine scale set image "task"!: null | bool | number | =~"^AzureVmssDeployment@0$" | [...] | { ... } // Azure VM scale set deployment inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription "azureSubscription"!: string // Action "action"?: "Update image" | "Configure application startup" // Virtual Machine scale set name "vmssName"!: string // OS type "vmssOsType"!: "Windows" | "Linux" // Image URL "imageUrl"!: string // Custom script directory "customScriptsDirectory"?: string // Command "customScript"?: string // Arguments "customScriptArguments"?: string // Azure storage account where custom scripts will be uploaded "customScriptsStorageAccount"?: string // Skip Archiving custom scripts "skipArchivingCustomScripts"?: bool }) ... }, { // Azure VM scale set deployment // // Deploy a virtual machine scale set image "task"!: null | bool | number | =~"^AzureVmssDeployment@1$" | [...] | { ... } // Azure VM scale set deployment inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription "azureSubscription"!: string // Action "action"?: "Update image" | "Configure application startup" // Virtual Machine scale set name "vmssName"!: string // OS type "vmssOsType"!: "Windows" | "Linux" // Image URL "imageUrl"!: string // Custom script directory "customScriptsDirectory"?: string // Command "customScript"?: string // Arguments "customScriptArguments"?: string // Azure storage account where custom scripts will be uploaded "customScriptsStorageAccount"?: string // Skip Archiving custom scripts "skipArchivingCustomScripts"?: bool }) ... }, { // Azure App Service: Classic (Deprecated) // // Create or update Azure App Service using Azure PowerShell "task"!: null | bool | number | =~"^AzureWebPowerShellDeployment@1$" | [...] | { ... } // Azure App Service: Classic (Deprecated) inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure Subscription (Classic) "ConnectedServiceName"!: string // Web App Location "WebSiteLocation"!: string // Web App Name "WebSiteName"!: string // Slot "Slot"?: string // Web Deploy Package "Package"!: string // Set DoNotDelete flag "doNotDelete"?: bool // Additional Arguments "AdditionalArguments"?: string }) ... }, { // Conda authenticate (for task runners) // // Authentication task for the conda client "task"!: null | bool | number | =~"^CondaAuthenticate@0$" | [...] | { ... } // Conda authenticate (for task runners) inputs "inputs"?: null | bool | number | string | [...] | close({ // 'Azure DevOps' Service Connection "azureDevOpsServiceConnection"?: string }) ... }, { // Azure Cloud Service deployment // // Deploy an Azure Cloud Service "task"!: null | bool | number | =~"^AzureCloudPowerShellDeployment@2$" | [...] | { ... } // Azure Cloud Service deployment inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription (ARM) "ARMConnectedServiceName"!: string // Resource group "ResourceGroupName"!: string // Storage account (ARM) "ARMStorageAccount"!: string // Service name "ServiceName"!: string // Service location "ServiceLocation"!: string // CsCfg "CsCfg"!: string // CsDef "CsDef"!: string // CsPkg "CsPkg"!: string // Azure KeyVault "KeyVault"?: string // Deployment label "DeploymentLabel"?: string // Append current date and time "AppendDateTimeToLabel"?: bool // Update mode for the cloud service "UpgradeMode"?: string // Allow upgrade "AllowUpgrade"?: bool // Verify role instance status "VerifyRoleInstanceStatus"?: bool // Diagnostic storage account keys "DiagnosticStorageAccountKeys"?: string }) ... }, { // Azure Cloud Service deployment // // Deploy an Azure Cloud Service "task"!: null | bool | number | =~"^AzureCloudPowerShellDeployment@1$" | [...] | { ... } // Azure Cloud Service deployment inputs "inputs"!: null | bool | number | string | [...] | close({ // Azure subscription (Classic) "azureClassicSubscription"!: string // Enable ARM storage support "EnableAdvancedStorageOptions"?: bool // Storage account (Classic) "StorageAccount"?: string // Azure subscription (ARM) "ARMConnectedServiceName"?: string // Storage account (ARM) "ARMStorageAccount"?: string // Service name "ServiceName"!: string // Service location "ServiceLocation"!: string // CsPkg "CsPkg"!: string // CsCfg "CsCfg"!: string // Environment (Slot) "slotName"?: string // Deployment label "DeploymentLabel"?: string // Append current date and time "AppendDateTimeToLabel"?: bool // Allow upgrade "AllowUpgrade"?: bool // Simultaneous upgrade "SimultaneousUpgrade"?: bool // Force upgrade "ForceUpgrade"?: bool // Verify role instance status "VerifyRoleInstanceStatus"?: bool // Diagnostic storage account keys "DiagnosticStorageAccountKeys"?: string // Custom certificates to import "NewServiceCustomCertificates"?: string // Additional arguments "NewServiceAdditionalArguments"?: string // Affinity group "NewServiceAffinityGroup"?: string }) ... }, { // Cargo authenticate (for task runners) // // Authentication task for the cargo client used for installing // Cargo crates distribution "task"!: null | bool | number | =~"^CargoAuthenticate@0$" | [...] | { ... } // Cargo authenticate (for task runners) inputs "inputs"!: null | bool | number | string | [...] | close({ // 'Azure DevOps' Service Connection "azureDevOpsServiceConnection"?: string // Registry names from config.toml "registryNames"?: string // config.toml file to authenticate "configFile"!: string // Credentials for registries outside this organization/collection "cargoServiceConnections"?: string }) ... }, { // Delete files // // Delete folders, or files matching a pattern "task"!: null | bool | number | =~"^DeleteFiles@1$" | [...] | { ... } // Delete files inputs "inputs"?: null | bool | number | string | [...] | close({ // Source Folder "SourceFolder"?: string // Contents "Contents"?: string // Remove SourceFolder "RemoveSourceFolder"?: bool // Remove files starting with a dot "RemoveDotFiles"?: bool }) ... }, { // gulp // // Run the gulp Node.js streaming task-based build system "task"!: null | bool | number | =~"^gulp@0$" | [...] | { ... } // gulp inputs "inputs"?: null | bool | number | string | [...] | close({ // gulp File Path "gulpFile"?: string // gulp Task(s) "targets"?: string // Arguments "arguments"?: string // Working Directory "workingDirectory"?: string // gulp.js location "gulpjs"?: string // Publish to Azure Pipelines "publishJUnitResults"?: bool // Test Results Files "testResultsFiles"?: string // Test Run Title "testRunTitle"?: string // Enable code Coverage "enableCodeCoverage"?: bool // Test Framework "testFramework"?: "Mocha" | "Jasmine" // Source Files "srcFiles"?: string // Test Script Files "testFiles"?: string }) ... }, { // gulp // // Run the gulp Node.js streaming task-based build system "task"!: null | bool | number | =~"^gulp@1$" | [...] | { ... } // gulp inputs "inputs"?: null | bool | number | string | [...] | close({ // gulp File Path "gulpFile"?: string // gulp Task(s) "targets"?: string // Arguments "arguments"?: string // Working Directory "workingDirectory"?: string // gulp.js location "gulpjs"?: string // Publish to Azure Pipelines "publishJUnitResults"?: bool // Test Results Files "testResultsFiles"?: string // Test Run Title "testRunTitle"?: string // Enable code Coverage "enableCodeCoverage"?: bool // Test Framework "testFramework"?: "Mocha" | "Jasmine" // Source Files "srcFiles"?: string // Test Script Files "testFiles"?: string }) ... }, { // IIS web app manage // // Create or update websites, web apps, virtual directories, or // application pools "task"!: null | bool | number | =~"^IISWebAppManagementOnMachineGroup@0$" | [...] | { ... } // IIS web app manage inputs "inputs"!: null | bool | number | string | [...] | close({ // Enable IIS "EnableIIS"?: bool // Configuration type "IISDeploymentType"?: "IISWebsite" | "IISWebApplication" | "IISVirtualDirectory" | "IISApplicationPool" // Action "ActionIISWebsite"?: "CreateOrUpdateWebsite" | "StartWebsite" | "StopWebsite" // Action "ActionIISApplicationPool"?: "CreateOrUpdateAppPool" | "StartAppPool" | "StopAppPool" | "RecycleAppPool" // Website name "StartStopWebsiteName"?: string // Website name "WebsiteName"!: string // Physical path "WebsitePhysicalPath"?: string // Physical path authentication "WebsitePhysicalPathAuth"?: "WebsiteUserPassThrough" | "WebsiteWindowsAuth" // Username "WebsiteAuthUserName"?: string // Password "WebsiteAuthUserPassword"?: string // Add binding "AddBinding"?: bool // Protocol "Protocol"?: "https" | "http" // IP address "IPAddress"?: string // Port "Port"?: string // Server Name Indication required "ServerNameIndication"?: bool // Host name "HostNameWithOutSNI"?: string // Host name "HostNameWithHttp"?: string // Host name "HostNameWithSNI"?: string // SSL certificate thumbprint "SSLCertThumbPrint"?: string // Add bindings "Bindings"!: string // Create or update app pool "CreateOrUpdateAppPoolForWebsite"?: bool // Configure authentication "ConfigureAuthenticationForWebsite"?: bool // Name "AppPoolNameForWebsite"!: string // .NET version "DotNetVersionForWebsite"?: "v4.0" | "v2.0" | "No Managed Code" // Managed pipeline mode "PipeLineModeForWebsite"?: "Integrated" | "Classic" // Identity "AppPoolIdentityForWebsite"?: "ApplicationPoolIdentity" | "LocalService" | "LocalSystem" | "NetworkService" | "SpecificUser" // Username "AppPoolUsernameForWebsite"?: string // Password "AppPoolPasswordForWebsite"?: string // Anonymous authentication "AnonymousAuthenticationForWebsite"?: bool // Basic authentication "BasicAuthenticationForWebsite"?: bool // Windows authentication "WindowsAuthenticationForWebsite"?: bool // Parent website name "ParentWebsiteNameForVD"!: string // Virtual path "VirtualPathForVD"!: string // Physical path "PhysicalPathForVD"?: string // Physical path authentication "VDPhysicalPathAuth"?: "VDUserPassThrough" | "VDWindowsAuth" // Username "VDAuthUserName"?: string // Password "VDAuthUserPassword"?: string // Parent website name "ParentWebsiteNameForApplication"!: string // Virtual path "VirtualPathForApplication"!: string // Physical path "PhysicalPathForApplication"?: string // Physical path authentication "ApplicationPhysicalPathAuth"?: "ApplicationUserPassThrough" | "ApplicationWindowsAuth" // Username "ApplicationAuthUserName"?: string // Password "ApplicationAuthUserPassword"?: string // Create or update app pool "CreateOrUpdateAppPoolForApplication"?: bool // Name "AppPoolNameForApplication"!: string // .NET version "DotNetVersionForApplication"?: "v4.0" | "v2.0" | "No Managed Code" // Managed pipeline mode "PipeLineModeForApplication"?: "Integrated" | "Classic" // Identity "AppPoolIdentityForApplication"?: "ApplicationPoolIdentity" | "LocalService" | "LocalSystem" | "NetworkService" | "SpecificUser" // Username "AppPoolUsernameForApplication"?: string // Password "AppPoolPasswordForApplication"?: string // Name "AppPoolName"!: string // .NET version "DotNetVersion"?: "v4.0" | "v2.0" | "No Managed Code" // Managed pipeline mode "PipeLineMode"?: "Integrated" | "Classic" // Identity "AppPoolIdentity"?: "ApplicationPoolIdentity" | "LocalService" | "LocalSystem" | "NetworkService" | "SpecificUser" // Username "AppPoolUsername"?: string // Password "AppPoolPassword"?: string // Application pool name "StartStopRecycleAppPoolName"?: string // Additional appcmd.exe commands "AppCmdCommands"?: string }) ... }, { // Docker CLI installer // // Install Docker CLI on agent machine. "task"!: null | bool | number | =~"^DockerInstaller@0$" | [...] | { ... } // Docker CLI installer inputs "inputs"?: null | bool | number | string | [...] | close({ // Docker Version "dockerVersion"?: string // Release type "releaseType"?: "stable" | "edge" | "test" | "nightly" }) ... }]) & close({ "task"?: matchN(>=1, ["PowerShell@2", "PowerShell@1", "AzurePowerShell@5", "AzurePowerShell@4", "AzurePowerShell@1", "AzurePowerShell@5", "AzurePowerShell@2", "MysqlDeploymentOnMachineGroup@1", "PipAuthenticate@1", "PipAuthenticate@0", "Maven@4", "Maven@2", "Maven@3", "Maven@1", "DotNetCoreCLI@2", "DotNetCoreCLI@0", "DotNetCoreCLI@1", "XamarinComponentRestore@0", "AzureRmWebAppDeployment@4", "AzureRmWebAppDeployment@2", "AzureRmWebAppDeployment@5", "AzureRmWebAppDeployment@3", "PowerShellOnTargetMachines@3", "PowerShellOnTargetMachines@1", "PowerShellOnTargetMachines@2", "PowerShellOnTargetMachines@2", "PublishCodeCoverageResults@2", "PublishCodeCoverageResults@1", "RunVisualStudioTestsusingTestAgent@1", "ManualIntervention@8", "InstallAppleProvisioningProfile@1", "InstallAppleProvisioningProfile@0", "SonarQubePostTest@1", "PyPIPublisher@0", "ChefKnife@1", "GoTool@0", "XcodePackageiOS@0", "Go@0", "PublishPipelineMetadata@0", "Docker@0", "Docker@2", "Docker@1", "JenkinsQueueJob@1", "JenkinsQueueJob@2", "FtpUpload@2", "FtpUpload@1", "WindowsMachineFileCopy@2", "WindowsMachineFileCopy@1", "AndroidBuild@1", "TwineAuthenticate@1", "TwineAuthenticate@0", "IISWebAppDeploymentOnMachineGroup@0", "PythonScript@0", "HelmInstaller@0", "HelmInstaller@1", "NodeTaskRunnerInstaller@0", "XamarinLicense@1", "NuGetAuthenticate@0", "NuGetAuthenticate@1", "DownloadGitHubNugetPackage@1", "MavenAuthenticate@0", "AzureAppConfigurationExport@10", "ReviewApp@0", "JavaToolInstaller@0", "JavaToolInstaller@1", "Chef@1", "AzureFunctionApp@1", "AzureFunctionApp@2", "npmAuthenticate@0", "MSBuild@1", "PackerBuild@0", "PackerBuild@1", "NuGetPackager@0", "AzureAppConfigurationSnapshot@1", "DuffleInstaller@0", "ServiceFabricUpdateAppVersions@1", "ServiceFabricUpdateManifests@2", "AzureMonitor@1", "AzureMonitor@0", "Notation@0", "AzureNLBManagement@1", "DockerCompose@0", "DockerCompose@1", "AzureMonitorAlerts@0", "XamarinTestCloud@1", "ServiceFabricDeploy@1", "Xcode@5", "Xcode@3", "Xcode@4", "Xcode@2", "NuGetPublisher@0", "queryWorkItems@0", "AzureWebAppContainer@1", "SqlDacpacDeploymentOnMachineGroup@0", "CacheBeta@1", "CacheBeta@0", "Cache@2", "CMake@1", "VSMobileCenterTest@0", "AppCenterTest@1", "DownloadSecureFile@1", "AzureContainerApps@0", "AzureContainerApps@1", "UseRubyVersion@0", "Grunt@0", "SqlAzureDacpacDeployment@1", "ContainerStructureTest@0", "IISWebAppDeployment@1", "KubectlInstaller@0", "CmdLine@2", "CmdLine@1", "NuGet@0", "ContainerBuild@0", "NuGetInstaller@0", "NuGetRestore@1", "NuGetCommand@2", "Delay@1", "XamariniOS@1", "XamariniOS@2", "PublishTestResults@2", "PublishTestResults@1", "AzureFileCopy@6", "AzureFileCopy@4", "AzureFileCopy@5", "AzureFileCopy@2", "AzureFileCopy@3", "AzureFileCopy@1", "PublishSymbols@2", "PublishSymbols@1", "CopyFilesOverSSH@0", "Gradle@2", "Gradle@3", "Gradle@4", "Gradle@1", "AzureTestPlan@0", "AppCenterDistribute@1", "AppCenterDistribute@2", "AppCenterDistribute@3", "AppCenterDistribute@0", "NuGetToolInstaller@0", "NuGetToolInstaller@1", "JenkinsDownloadArtifacts@2", "JenkinsDownloadArtifacts@1", "JenkinsDownloadArtifacts@2", "AzureFunctionAppContainer@1", "DecryptFile@1", "HelmDeploy@1", "HelmDeploy@0", "InstallAppleCertificate@2", "InstallAppleCertificate@1", "InstallAppleCertificate@0", "AzureFunction@1", "AzureFunction@0", "OpenPolicyAgentInstaller@0", "DownloadGitHubRelease@0", "SSH@0", "PublishPipelineArtifact@0", "PublishPipelineArtifact@1", "SonarQubePreBuild@1", "DownloadFileshareArtifacts@1", "Kubernetes@1", "Kubernetes@0", "AzureIoTEdge@2", "ServiceFabricComposeDeploy@0", "AndroidSigning@1", "AndroidSigning@2", "AndroidSigning@3", "DownloadPipelineArtifact@0", "DownloadPipelineArtifact@2", "DownloadPipelineArtifact@1", "UsePythonVersion@0", "ServiceFabricPowerShell@1", "VSTest@2", "VSTest@3", "VSTest@1", "ManualValidation@1", "ManualValidation@0", "Ant@1", "DeployVisualStudioTestAgent@2", "DeployVisualStudioTestAgent@1", "CondaEnvironment@0", "CondaEnvironment@1", "BatchScript@1", "DownloadGithubNpmPackage@1", "VSBuild@1", "AzureKeyVault@1", "AzureKeyVault@2", "UseDotNet@2", "DotNetCoreInstaller@0", "DotNetCoreInstaller@1", "UseDotNet@2", "AzureAppConfigurationImport@10", "AzureAppServiceManage@0", "KubeloginInstaller@0", "FuncToolsInstaller@0", "FileTransform@2", "FileTransform@1", "ExtractFiles@1", "XamarinAndroid@1", "CopyPublishBuildArtifacts@1", "DownloadPackage@0", "DownloadPackage@1", "AzureResourceGroupDeployment@1", "AzureResourceGroupDeployment@2", "AzureResourceManagerTemplateDeployment@3", "InvokeRESTAPI@0", "InvokeRESTAPI@1", "ArchiveFiles@1", "ArchiveFiles@2", "GitHubComment@0", "CopyFiles@2", "CopyFiles@1", "AzureMysqlDeployment@1", "Npm@1", "Npm@0", "AzureStaticWebApp@0", "UseNode@1", "NodeTool@0", "SqlServerDacpacDeployment@1", "VisualStudioTestPlatformInstaller@1", "PublishToAzureServiceBus@1", "PublishToAzureServiceBus@2", "PublishToAzureServiceBus@0", "KubernetesManifest@0", "KubernetesManifest@1", "DownloadBuildArtifacts@0", "DownloadBuildArtifacts@1", "CocoaPods@0", "AzureSpringCloud@0", "AzureWebApp@1", "AzureCLI@1", "AzureCLI@2", "AzureCLI@0", "AzureCLI@2", "GitHubRelease@1", "GitHubRelease@0", "cURLUploader@1", "cURLUploader@2", "AzureAppServiceSettings@1", "UniversalPackages@0", "AzurePolicyCheckGate@0", "AzureFunctionOnKubernetes@0", "AzureFunctionOnKubernetes@1", "ShellScript@2", "Bash@3", "PublishBuildArtifacts@1", "InstallSSHKey@0", "AzureVmssDeployment@0", "AzureVmssDeployment@1", "AzureWebPowerShellDeployment@1", "CondaAuthenticate@0", "AzureCloudPowerShellDeployment@2", "AzureCloudPowerShellDeployment@1", "CargoAuthenticate@0", "DeleteFiles@1", "gulp@0", "gulp@1", "IISWebAppManagementOnMachineGroup@0", "DockerInstaller@0"]) // Human-readable name for the task "displayName"?: string // ID of the task instance "name"?: =~"^[_A-Za-z0-9]*$" // Evaluate this condition expression to determine whether to run // this task "condition"?: string // Continue running the parent job even on failure? "continueOnError"?: bool // Run this task when the job runs? "enabled"?: string // Number of retries if the task fails "retryCountOnTaskFailure"?: int // Time to wait for this task to complete before the server kills // it "timeoutInMinutes"?: int // Task-specific inputs "inputs"?: { ... } // Variables to map into the process's environment "env"?: { ... } }) #taskBase: close({ "condition"?: #string "continueOnError"?: #boolean "displayName"?: #string "target"?: #stepTarget "enabled"?: #boolean "env"?: #mappingOfStringString "name"?: #referenceName "timeoutInMinutes"?: #nonEmptyString "retryCountOnTaskFailure"?: #string }) #tasks: [...#task] #templateContext: { ... } #templateParameter: close({ "name"?: #nonEmptyString "displayName"?: #string "type"?: #templateParameterType "default"?: #any "values"?: #sequenceOfNonEmptyString }) #templateParameterType: matchN(>=1, [=~"^boolean$", =~"^container$", =~"^containerList$", =~"^deployment$", =~"^deploymentList$", =~"^job$", =~"^jobList$", =~"^legacyObject$", =~"^number$", =~"^object$", =~"^stage$", =~"^stageList$", =~"^step$", =~"^stepList$", =~"^string$", =~"^stringList$"]) #templateParameters: matchN(>=1, [[...#templateParameter], { ... }]) #trigger: matchN(>=1, [=~"^none$", [...#branchFilter], close({ "batch"?: #boolean "branches"?: #includeExcludeFilters "paths"?: #includeExcludeFilters "tags"?: #includeExcludeFilters })]) #triggerBranchFilter: matchN(>=1, [close({ "include"?: #branchFilterArray "exclude"?: #branchFilterArray }), [...#branchFilter]]) #variable: matchN(>=1, [close({ "name"?: #nonEmptyString "value"?: #string "readonly"?: #boolean }), close({ "group"?: #nonEmptyString }), close({ "template"?: #nonEmptyString "parameters"?: #mapping })]) #variableRestrictions: matchN(>=1, [=~"^none$", [...#nonEmptyString]]) #variables: matchN(>=1, [{ ... }, [...#variable]]) #variablesTemplate: close({ "parameters"?: #templateParameters "variables"?: #variables }) #webhookFilter: close({ "path"!: #nonEmptyString "value"!: #nonEmptyString }) #webhookFilters: [...#webhookFilter] #webhookResource: close({ "webhook"!: #referenceName "connection"!: #nonEmptyString "type"?: #nonEmptyString "filters"?: #webhookFilters }) #webhookResources: [...#webhookResource] }