Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
7 contributors

Users who have contributed to this file

@jessehouwing @sandorfr @SebastianSchuetze @madhurig @ericsciple @AArnott @bradwillis
309 lines (307 sloc) 8.5 KB
{
"$schema": "http://json-schema.org/draft-04/schema",
"id": "https://raw.githubusercontent.com/Microsoft/azure-pipelines-task-lib/master/tasks.schema.json",
"title": "Azure DevOps Tasks schema",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"description": "A unique guid for this task",
"pattern": "^[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$"
},
"name": {
"type": "string",
"description": "Name with no spaces",
"pattern": "^[A-Za-z0-9\\-]+$"
},
"friendlyName": {
"type": "string",
"description": "Descriptive name (spaces allowed)"
},
"description": {
"type": "string",
"description": "Detailed description of what your task does"
},
"helpMarkDown": {
"type": "string"
},
"author": {
"type": "string"
},
"preview": {
"type": "boolean"
},
"deprecated": {
"type": "boolean",
"description": "Task is deprecated only when the latest version is marked as deprecated. Deprecated tasks appear at the end of searches under a section that is collapsed by default."
},
"showEnvironmentVariables": {
"type": "boolean",
"description": "Toggles showing the environment variable editor in the task editor UI. Allows passing environment variables to script based tasks."
},
"runsOn": {
"type": "array",
"items": {
"type": "string",
"enum": [
"Agent",
"MachineGroup",
"Server"
]
}
},
"category": {
"type": "string",
"description": "Where the task appears in Azure DevOps. Use the 'Azure *' categories for Azure DevOps and Azure DevOps Server 2019. Use the other categories for Team Foundation Server 2018 and below.",
"enum": [
"Build",
"Utility",
"Test",
"Package",
"Deploy",
"Azure Repos",
"Azure Boards",
"Azure Pipelines",
"Azure Test Plans",
"Azure Artifacts"
]
},
"groups": {
"type": "array",
"description": "Describes groups that task properties may be logically grouped by in the UI.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"displayName"
],
"properties": {
"name": {
"type": "string"
},
"displayName": {
"type": "string"
},
"isExpanded": {
"type": "boolean"
}
}
}
},
"demands": {
"type": "array",
"description": "Allows you to define a list of demands that a build agent requires to run this build task.",
"items": {
"type": "string"
}
},
"minimumAgentVersion": {
"type": "string",
"pattern": "^\\d+\\.\\d+(\\.\\d+)?$"
},
"version": {
"type": "object",
"additionalProperties": false,
"description": "Always update this when you release your task, so that the agents utilize the latest code.",
"required": [
"Major",
"Minor",
"Patch"
],
"properties": {
"Major": {
"type": "number"
},
"Minor": {
"type": "number"
},
"Patch": {
"type": "number"
}
}
},
"instanceNameFormat": {
"type": "string",
"description": "This is how the task will be displayed within the build step list - you can use variable values by using $(variablename)"
},
"inputs": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"label",
"type"
],
"properties": {
"name": {
"type": "string",
"description": "The variable name to use to store the user-supplied value",
"pattern": "^[A-Za-z][A-Za-z0-9]*$"
},
"label": {
"type": "string",
"description": "The text displayed to the user for the input label"
},
"type": {
"type": "string",
"description": "The type that dictates the control rendered to the user.",
"anyOf": [
{
"enum": [
"boolean",
"filePath",
"multiLine",
"pickList",
"radio",
"secureFile",
"string"
]
},
{
"type": "string",
"pattern": "^connectedService\\:.+$"
}
]
},
"defaultValue": {
"type": [
"string",
"boolean"
],
"description": "The default value to apply to this input."
},
"required": {
"type": "boolean",
"description": "Whether the input is a required field (default is false).",
"default": false
},
"helpMarkDown": {
"type": "string",
"description": "Help to be displayed when hovering over the help icon for the input. To display URLs use the format [Text To Display](http://Url)"
},
"groupName": {
"type": "string",
"description": "Setting this to the name of a group defined in 'groups' will place the input into that group."
},
"visibleRule": {
"type": "string",
"description": "Allow's you to define a rule which dictates when the input will be visible to a user, for example \"variableName = value\""
},
"properties": {
"type": "object",
"properties": {
"editableOptions": {
"type": "string",
"enum": [
"True",
"False"
]
}
}
},
"options": {
"type": "object",
"additionalProperties": true
}
}
}
},
"dataSourceBindings": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"target": {
"type": "string"
},
"endpointId": {
"type": "string"
},
"dataSourceName": {
"type": "string"
},
"parameters": {
"type": "object"
},
"resultTemplate": {
"type": "string"
}
}
}
},
"sourceDefinitions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"target": {
"type": "string"
},
"endpoint": {
"type": "string"
},
"selector": {
"type": "string"
},
"keySelector": {
"type": "string"
},
"authKey": {
"type": "string"
}
}
}
},
"execution": {
"type": "object",
"additionalProperties": false,
"description": "Execution options for this task",
"properties": {
"Node10": {
"$ref": "#/definitions/executionObject"
},
"Node": {
"$ref": "#/definitions/executionObject"
},
"PowerShell3": {
"$ref": "#/definitions/executionObject"
},
"PowerShell": {
"$ref": "#/definitions/executionObject"
}
}
},
"messages": {
"type": "object"
},
"$schema": {
"type": "string"
}
},
"definitions": {
"executionObject": {
"type": "object",
"additionalProperties": true,
"properties": {
"target": {
"type": "string",
"description": "The target file to be executed. You can use variables here in brackets e.g. $(currentDirectory)\filename.ps1"
},
"platforms": {
"type": "array",
"items": {
"enum": [
"windows"
]
}
}
}
}
}
}
You can’t perform that action at this time.