old*_*onk 1 azure azure-devops azure-pipelines
我有一个用于构建管道的模板存储库,名为“azure-templates-repo”,我有 python 任务模板,如下所述:
steps:
- task: PythonScript@0
inputs:
scriptSource: 'filepath'
scriptPath: 'python_test.yml' #this is located on repo: 'azure-templates-repo'
Run Code Online (Sandbox Code Playgroud)
azure-pipeline.yml我的问题是关于 scriptPath,当我在存储库的构建管道中使用此模板时,azure 尝试在文件真正所在的位置my-great-app查找该文件。my-great-appazure-templates-repo
那么,有没有办法提及 azure 任务“pythonScript”的 filePath 参数的存储库?
当您在管道中使用模板时,您仅使用 .yml 模板文件,而不是包含该模板的整个存储库。因此,默认情况下,当组成主管道时,模板存储库中可能存在的其他附加文件(除了模板本身)将不可用。
如果您需要访问模板存储库中存在的脚本或其他文件,您将需要使用签出任务并实际签出模板存储库。
- checkout: git://MyProject/MyTemplateRepo
如果您选择检查多个存储库,需要注意的一件事是,这将导致您的结构$(Build.SourcesDirectory)发生变化。实际上,这可能会带来痛苦,因为您必须更新任何预期主存储库位置位于$(Build.SourcesDirectory).
对于新管道来说,这种突变$(Build.SourcesDirectory)可能不是什么大问题。如果您有很多管道想要在其中使用新模板,并且需要支持脚本,那么这可能会变得很痛苦。
一种选择是打包支持模板脚本,并将它们发布到内部包源。然后在模板块中将所需的脚本作为包拉下来。我之前曾在需要支持 powerShell 脚本的模板中使用过此策略。我们对这些脚本进行管道处理并将其发布为通用包,然后在模板级别使用它们。
| 归档时间: |
|
| 查看次数: |
480 次 |
| 最近记录: |