问题标签 [azure-pipelines-task-lib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1757 浏览

azure-devops - 枚举 Azure Pipelines 中的机密变量

我在 Azure Pipelines 中有一个构建步骤,它从 Azure Pipelines 获取变量并将它们上传到同样秘密的地方。目前我有大约 50 个构建,每个构建都有 5-20 个变量。

有些是秘密的,有些则不是。因此,对于非秘密的,我列举了所有设置的,然后我就走了;但是对于秘密的,我需要手动将它们添加到构建步骤中;此外,因为我用相同的键编写它们,所以我需要:

  1. 在组中声明变量,例如MyPrefix.MyVar
  2. 编辑构建步骤以说明/specialtool --vars=MyPrefix.MyVar=$(MyPrefix.MyVar)哪个相当平凡。

我发现我可以使用 Azure DevOps api 获取变量列表,所以我想我可以在构建运行时修改下一个构建步骤。

但是,如果我更新当前正在运行的相同构建定义(以动态编写命令),它不会发送到代理(相反,感觉就像在触发整个构建时捕获了任务的所有参数)。关于如何动态枚举秘密变量以提供给我的工具的任何想法?

0 投票
0 回答
108 浏览

azure - Azure Devops 无法填充选项列表

我按照 https://docs.microsoft.com/en-us/azure/devops/extend/develop/service-endpoints?view=azure-devops上的教程进行操作

api 调用是正确的,因为如果我不进行身份验证,它会在错误消息中显示正确的路径。在浏览器中输入它在消息中显示的 url 会给出正确的 json。

选择列表对象的行为就像它正在尝试加载,但最终会显示未找到任何结果。

您可以使用个人公司 api 使用服务器端点加载选项列表吗?

你如何调试这个。我在调试工具的网络选项卡中看到的只是 200 来自 azure 的帖子。

0 投票
1 回答
140 浏览

azure-devops - 持久化由代理上的任务产生的进程的方法?

我正在开发一个包含任务的 Azure Devops 扩展。在其中一项任务中,我正在启动一个流程并进行配置。在另一个任务中,我正在访问相同的流程 API 来使用它。这工作得很好,但我注意到工作完成后,我的进程被杀死了。我计划允许用户在代理上进行配置,并能够在另一个作业或管道中访问它。

有没有办法在代理上持久化进程?我觉得代理正在杀死清理时创建的每个子进程。我在哪里可以找到这方面的文档?

编辑:我设法找到这个讨论某个变量的线程Process.clean,但没有更多关于它的信息,我也没有找到关于它的文档。

0 投票
1 回答
55 浏览

node.js - 通过 path.resolve.apply(this, ...) 调用 path.resolve() 的效果是什么?

在 Azure Pipelines 任务库中,通过 apply()调用了 path.resolve() ,但我不太明白:

在哪里pathSegments: any[]

上面的代码在模块范围内导出的函数中,所以(如果我理解正确的话)this将引用模块本身。但是我不知道通过调用apply而不是path.resolve()直接调用的效果是什么。谁能解释一下?

上下文:我怀疑这可能与模拟有关 -在等效的模拟模块中有一个类似的功能path.posix.resolve.apply(),它使用. 我的根本问题是,当我调用模拟的tl.resolve('')- 间接 via tl.filePathSupplied()- 它返回实际的 cwd 而不是模拟的 via TaskLibAnswers

0 投票
1 回答
371 浏览

json - Azure Pipelines 任务 - 如何使用服务端点以外的源动态填充 pickList 输入?

在下面的自定义任务链接中,您将看到几个 pickList 字段;一个用于服务端点,两个用于环境和命令,它们是 task.json 中的静态列表,然后是第四个。这个,我需要根据环境的选择填充一个项目列表,但是没有(正常工作的)端点我可以将此输入绑定到以获取该列表。但是,我可以运行一个 CLI 命令来执行此操作。

我找到了大量关于如何使用 connectedService 类型来填充 pickList 的文档和论坛答案,但没有找到关于如何在没有服务端点的情况下执行此操作的信息。此外,Azure-Pipelines-Task-Lib TypeScript API 中没有等效的“setInput”。

在这一点上,这甚至可以通过自定义任务实现吗?如果是这样,我可以研究哪些选项?

自定义任务 自定义任务

0 投票
1 回答
246 浏览

azure-devops - 如何获取 Azure DevOps Pipelines 任务的任务版本?

我有一个 Azure Pipelines 任务,它使用 azure-pipelines-task-lib ( https://github.com/microsoft/azure-pipelines-task-lib ) 并且需要从我的任务代码 (打字稿)。我认为使用 azure-pipelines-task-lib 库有一种简单的方法可以做到这一点,但如果有,我还没有找到。

版本在 task.json 文件中指定,该文件被打包到您发布任务时构建的工件中,我可以很容易地解析它,这样做似乎有点笨拙。有谁知道这样做的更好方法?

谢谢!