Azure Pipelines Task SDK
npm install azure-pipelines-task-libLibraries 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.
[![NPM version][npm-lib-image]][npm-lib-url]
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 6
* Node10 - Uses Node 10
* Node16 - Uses Node 16
* Node20_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 fs module 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:
``bash`
$ cd node
$ npm install
Build and Test:
`bash`
$ npm test
Set environment variable TASK_TEST_TRACE=1 to display test output.
[npm-lib-image]: https://img.shields.io/npm/v/azure-pipelines-task-lib.svg?style=flat
[npm-lib-url]: https://www.npmjs.com/package/azure-pipelines-task-lib
We also maintain a PowerShell library for Windows task development.
Library: Powershell Library
Usage: Consuming the SDK
bash
$ node generate-third-party-notice.js
``