Нет прямого обработчика задач для ядра. NET. Чтобы выполнить кроссплатформенную задачу, вам необходимо создать небольшой проект с машинописным шрифтом, который использует azure -pipelines-task-lib для вызова вашего исполняемого файла.
У меня очень простой расширение, которое упаковывает исполняемый файл здесь, которое может служить примером структуры расширения:
https://github.com/jessehouwing/azure-pipelines-agent-screenshot
Вам нужно будет изменить следующие вещи:
- vss-extension. json
- издатель
- идентификатор расширения
- идентификатор вклада
- задача. json
- задача id (назначьте новый guid)
- имя задачи
- удалите текущий обработчик выполнения и замените его на Node.
A очень простую задачу, которая запускается ping.exe
на основе Typescript, можно найти здесь:
https://github.com/jessehouwing/azure-pipelines-demo-ping-task/blob/master/PingTask/ping.ts
Простейшая форма будет выглядеть так:
import tl = require('azure-pipelines-task-lib/task');
import trm = require('azure-pipelines-task-lib/toolrunner');
import { chmodSync } from "fs";
async function run() {
try {
let echoPath = tl.which('ping');
if (!isWindows) {
chmodSync(echoPath, "777");
}
let ping = tl.tool(echoPath);
let result: number = await ping.exec();
}
catch (err) {
tl.setResult(tl.TaskResult.Failed, err.message);
}
}
void run();
Все основные c шагов к Загрузите свою задачу здесь:
Публикация задачи на март Здесь поясняется кетплейс: