Skip to content

Latest commit

 

History

History
89 lines (57 loc) · 3.47 KB

File metadata and controls

89 lines (57 loc) · 3.47 KB

Azure Pipelines Task SDK

Libraries for writing Azure Pipelines tasks

Reference examples of our in the box tasks are here

TypeScript Tasks

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

NPM version

Step by Step: Create Task

Documentation: TypeScript API, task JSON schema

Guidance: Finding Files, Minimum agent version, Proxy, Certificate

Node Runtime Support

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

Node Version Selection

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

Upgrading to Newer Node Versions

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)

Reference Examples

The ShellScript Task and the XCode Task are good examples.

Contributing

We are accepting contributions and we try to stay on top of issues.

Contribution Guide.

Logging Issues

Building the library

Once:

$ cd node
$ npm install

Build and Test:

$ npm test

Set environment variable TASK_TEST_TRACE=1 to display test output.

Powershell

We also maintain a PowerShell library for Windows task development.

Library: Powershell Library

Usage: Consuming the SDK

Third Party Notices

To generate/update third party notice file run:

$ node generate-third-party-notice.js