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] }