Skip to content
Branch: master
Go to file

Latest commit

egor-bryzgalov committed 7b32ca7 Jun 18, 2020
[ToolRunner] Enhanced 'shell' execution option (#643)
* Wrapped tool path with quotes for running inside shell

* Refactored toolrunner.ts

* Increased version

* Updated package-lock.json

* Moved RegExp to separate variable

* Moved toolPath wrapping to separate method

* Revert "Updated package-lock.json"

This reverts commit ad943d1.

* Fixed package-lock.json

* Added exec and execSync tests

* Improved arguments handling for inside shell execution

* Added tests and moved them to separate section.

* Fixed Linux tests

* Fixed quotes handling test

* Fixed tests to support macOS

* Minor code cleanup.

* Made cmdSpecialChars constant readonly

* Minor refactoring

* Refactored arguments unwrapping

* Removed redundant import.

* Changes in accordance with review points

* Refactored in accordance with review points

* Fixed JSDocs


Failed to load latest commit information.

Azure Pipelines Task SDK

Libraries for writing Azure Pipelines tasks

Reference examples of our in the box tasks are here


Build & Test
Win-x64 Windows Build & Test
macOS macOS Build & Test
Linux-x64 Linux Build & Test


  • Breaks coupling with agent: This lib is decoupled and ships with the task and the agent is just an engine to run tasks.
  • Testability: Aims to offer the ability to actually run your task scripts under all scenarios without a server or an agent.
  • Localization: The lib provides a mechanism for storing your localized strings with your task, and loading the correct set at run-time.
  • Consistent API: The TypeScript and PowerShell libs are largely consistent. They only differ where it makes sense (being true to the platform).
  • Tracing for free: Tracing has been built-in to many of the commands. Use the SDK and get some debug tracing for free.

TypeScript Tasks

Cross platform tasks are written in TypeScript. It is the preferred way to write tasks once.

NPM version VSTS

Documentation: Creating Node Tasks with the Typescript API

PowerShell Tasks

A task which automates Powershell technologies can be written with our Powershell SDK. These only run on Windows.

Documentation: PowerShell API

Notes on authoring Tasks

Starting from version v2.141.0, the agent can now run on three OS architectures: x86, x64, and 32-bit ARM. When authoring a new task, you can check agent variable: Agent.OSArchitecture (possible values: X86, X64, ARM) to restrict running said task to a particular set of OS architectures.

Security issues

Do you think there might be a security issue? Have you been phished or identified a security vulnerability? Please don't report it here - let us know by sending an email to

You can’t perform that action at this time.