Libraries for writing Azure Pipelines tasks
Reference examples of our in the box tasks are here
Cross platform tasks are written in TypeScript. It is the preferred way to write tasks once.
Step by Step: Create Task
Documentation: TypeScript API, task JSON schema
Guidance: Finding Files, Minimum agent version, Proxy, Certificate
Azure Pipelines supports multiple Node.js runtimes for task execution:
- Node 6 - Supported
- Node 10 - Supported
- Node 16 - Supported
- Node 20 - Current recommended version
- Node 24 - Latest version with modern JavaScript features
The Node runtime used depends on the execution handler specified in your task's task.json:
Node- Uses Node 6Node10- Uses Node 10Node16- Uses Node 16Node20_1- Uses Node 20 (Note: handler name includes _1 suffix)Node24- Uses Node 24
When upgrading your tasks to newer Node versions:
- TypeScript: Ensure you're using a compatible TypeScript version (TS 4.0+ for Node 10+, TS 5.0+ for Node 20+, TS 5.7+ for Node 24)
- Dependencies: Review and update npm dependencies for compatibility with the target Node version
- Testing: Thoroughly test your tasks with the new Node runtime before publishing
- Breaking Changes: Review Node.js release notes for breaking changes between versions (especially
fsmodule changes)
The ShellScript Task and the XCode Task are good examples.
We are accepting contributions and we try to stay on top of issues.
Once:
$ cd node
$ npm installBuild and Test:
$ npm testSet environment variable TASK_TEST_TRACE=1 to display test output.
We also maintain a PowerShell library for Windows task development.
Library: Powershell Library
Usage: Consuming the SDK
To generate/update third party notice file run:
$ node generate-third-party-notice.js