【发布时间】:2020-05-06 17:09:53
【问题描述】:
我想基于我创建的控制台应用创建 Azure Devops 任务。 该任务应该在 Linux 构建代理上运行,但我不知道如何开始。
其他人做过类似的事情吗?
【问题讨论】:
标签: azure-devops azure-pipelines azure-pipelines-build-task
我想基于我创建的控制台应用创建 Azure Devops 任务。 该任务应该在 Linux 构建代理上运行,但我不知道如何开始。
其他人做过类似的事情吗?
【问题讨论】:
标签: azure-devops azure-pipelines azure-pipelines-build-task
azure devops 任务基于 Node.js
来自以下文章
你可以知道很多关于创建任务的知识。
azure devops task 的 SDK 是 Node.js。 也许,你可以把DotNetCoreInstaller和Github等任务结合起来。 但是,环境是 Node.js
最简单的方法是使用 Node.js。
【讨论】:
.NET 核心没有直接的任务处理程序。因此,为了创建跨平台任务,您需要创建一个使用 azure-pipelines-task-lib 调用可执行文件的小型 typescript 项目。
我有一个非常简单的扩展,在这里打包一个可执行文件,可以作为扩展结构的一个例子:
https://github.com/jessehouwing/azure-pipelines-agent-screenshot
您需要更改以下内容:
可以在这里找到一个基于 Typescript 运行 ping.exe 的非常简单的任务:
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();
启动任务的所有基本步骤都在这里:
这里解释了向市场发布任务:
【讨论】: