问题标签 [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.
azure-devops - 枚举 Azure Pipelines 中的机密变量
我在 Azure Pipelines 中有一个构建步骤,它从 Azure Pipelines 获取变量并将它们上传到同样秘密的地方。目前我有大约 50 个构建,每个构建都有 5-20 个变量。
有些是秘密的,有些则不是。因此,对于非秘密的,我列举了所有设置的,然后我就走了;但是对于秘密的,我需要手动将它们添加到构建步骤中;此外,因为我用相同的键编写它们,所以我需要:
- 在组中声明变量,例如
MyPrefix.MyVar
- 编辑构建步骤以说明
/specialtool --vars=MyPrefix.MyVar=$(MyPrefix.MyVar)
哪个相当平凡。
我发现我可以使用 Azure DevOps api 获取变量列表,所以我想我可以在构建运行时修改下一个构建步骤。
但是,如果我更新当前正在运行的相同构建定义(以动态编写命令),它不会发送到代理(相反,感觉就像在触发整个构建时捕获了任务的所有参数)。关于如何动态枚举秘密变量以提供给我的工具的任何想法?
azure - Azure Devops 无法填充选项列表
api 调用是正确的,因为如果我不进行身份验证,它会在错误消息中显示正确的路径。在浏览器中输入它在消息中显示的 url 会给出正确的 json。
选择列表对象的行为就像它正在尝试加载,但最终会显示未找到任何结果。
您可以使用个人公司 api 使用服务器端点加载选项列表吗?
你如何调试这个。我在调试工具的网络选项卡中看到的只是 200 来自 azure 的帖子。
azure-devops - 持久化由代理上的任务产生的进程的方法?
我正在开发一个包含任务的 Azure Devops 扩展。在其中一项任务中,我正在启动一个流程并进行配置。在另一个任务中,我正在访问相同的流程 API 来使用它。这工作得很好,但我注意到工作完成后,我的进程被杀死了。我计划允许用户在代理上进行配置,并能够在另一个作业或管道中访问它。
有没有办法在代理上持久化进程?我觉得代理正在杀死清理时创建的每个子进程。我在哪里可以找到这方面的文档?
编辑:我设法找到这个讨论某个变量的线程Process.clean
,但没有更多关于它的信息,我也没有找到关于它的文档。
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
。
json - Azure Pipelines 任务 - 如何使用服务端点以外的源动态填充 pickList 输入?
在下面的自定义任务链接中,您将看到几个 pickList 字段;一个用于服务端点,两个用于环境和命令,它们是 task.json 中的静态列表,然后是第四个。这个,我需要根据环境的选择填充一个项目列表,但是没有(正常工作的)端点我可以将此输入绑定到以获取该列表。但是,我可以运行一个 CLI 命令来执行此操作。
我找到了大量关于如何使用 connectedService 类型来填充 pickList 的文档和论坛答案,但没有找到关于如何在没有服务端点的情况下执行此操作的信息。此外,Azure-Pipelines-Task-Lib TypeScript API 中没有等效的“setInput”。
在这一点上,这甚至可以通过自定义任务实现吗?如果是这样,我可以研究哪些选项?
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 文件中指定,该文件被打包到您发布任务时构建的工件中,我可以很容易地解析它,这样做似乎有点笨拙。有谁知道这样做的更好方法?
谢谢!