如何在 Azure 管道模板中使用 powershell/bash 脚本文件
How to use powershell/bash script file in azure pipeline template
示例:Azure Devops,我有一个组织,几个项目,每个项目中的存储库很少(其中大部分包含构建管道):
组织:
..-- 项目 1
.....-- Repo1
.....-- Repo2
..-- 项目 2
.....-- Repo1
.....-- Repo2
..-- 构建模板
.....-- BuildTemplatesRepository
.......-- Template1.yml
.......-- Template2.yml
.......-- 模板1.ps1
Template1.yml 包含 powershell 任务或步骤:
- pwsh: ./Template1.ps1
问题:
当 Template1.yml 从另一个 repo (Project1/Repo1/azure-pipelines.yml) 在管道内部执行时,我得到错误:
[错误]ENOENT:没有这样的文件或目录,stat '/home/vsts/work/1/s/Template1.ps1'
我明白为什么会出现错误,因为 *.ps1 文件没有复制到正在进行进程的容器中,但是如何以最佳方式解决这个问题(无需手动处理此脚本)?
对于这个问题,您可以检查管道中的多个存储库。
管道通常依赖于多个存储库。您可以拥有不同的存储库,其中包含构建代码所需的源代码、工具、脚本或其他项目。通过在管道中使用多个 checkout
步骤,除了用于存储 YAML 管道的存储库之外,您还可以获取和检查其他存储库。
因此您可以查看管道中包含 Template1.ps1
的其他存储库。
steps:
- checkout: git://MyProject/MyRepo # Azure Repos Git repository in the same organization
详情请参考本官方document.
示例:Azure Devops,我有一个组织,几个项目,每个项目中的存储库很少(其中大部分包含构建管道):
组织:
..-- 项目 1
.....-- Repo1
.....-- Repo2
..-- 项目 2
.....-- Repo1
.....-- Repo2
..-- 构建模板
.....-- BuildTemplatesRepository
.......-- Template1.yml
.......-- Template2.yml
.......-- 模板1.ps1
Template1.yml 包含 powershell 任务或步骤: - pwsh: ./Template1.ps1
问题:
当 Template1.yml 从另一个 repo (Project1/Repo1/azure-pipelines.yml) 在管道内部执行时,我得到错误:
[错误]ENOENT:没有这样的文件或目录,stat '/home/vsts/work/1/s/Template1.ps1'
我明白为什么会出现错误,因为 *.ps1 文件没有复制到正在进行进程的容器中,但是如何以最佳方式解决这个问题(无需手动处理此脚本)?
对于这个问题,您可以检查管道中的多个存储库。
管道通常依赖于多个存储库。您可以拥有不同的存储库,其中包含构建代码所需的源代码、工具、脚本或其他项目。通过在管道中使用多个 checkout
步骤,除了用于存储 YAML 管道的存储库之外,您还可以获取和检查其他存储库。
因此您可以查看管道中包含 Template1.ps1
的其他存储库。
steps:
- checkout: git://MyProject/MyRepo # Azure Repos Git repository in the same organization
详情请参考本官方document.