我如何知道日志记录命令的状态?

时间:2021-07-04 08:31:23

标签: azure-devops

(复制自 https://github.com/MicrosoftDocs/azure-devops-docs/issues/11014

当运行一个我看不到的命令(如文件附件)时,我怎么知道它是否成功?

我有一个客户使用我编写的使用附件的扩展程序,但它在某些情况下停止工作,我不知道为什么。我可以说在这些情况下没有附件,因为查找它们的服务器端在回调中返回一个空列表,这意味着附件由于某种原因未成功或由于某种原因读取未成功。

这是我用来创建附件的代码部分(代理端):

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });

const fs = require("fs");
const path = require("path");
const os = require("os");

...

let tempPath = path.join(tempDir, "data.json");
if (fs.existsSync(tempPath)) {
    console.log("temp file already exists: " + tempPath);
    let fileContent = fs.readFileSync(tempPath);
    console.log(fileContent.toString());
}
console.log("creating temp file: " + tempPath);
let json =  JSON.stringify({
    ID: someId,
    NAME: someName
});
console.log("writing this content to temp file: " + json)
fs.writeFileSync(tempPath, json);
console.log("##vso[task.addattachment type=MyDataJson;name=MY_DATA;]" + tempPath);

这是我用来阅读它的代码的一部分(服务器端):

...
var taskClient = DT_Client.getClient();
taskClient.getPlanAttachments(context.project.id, "build", build.orchestrationPlan.planId, "MyDataJson")
.then((taskAttachments) => {
                        console.log("taskClient.getPlanAttachments result: enter.");
                        console.log("    task attachments: " + taskAttachments.length);
...

在浏览器控制台中我看到:

taskClient.getPlanAttachment result: enter.
    task attachments: 0

知道我缺少什么吗?同样,大多数情况下它运行良好,我无法重现它,但它经常发生在客户身上。


相关 ADO 文档:https://docs.microsoft.com/en-us/azure/devops/pipelines/scripts/logging-commands?view=azure-devops&tabs=bash#addattachment-attach-a-file-to-the-build

0 个答案:

没有答案