Validation 跨不同项目构建验证
我被困在以下情况中。我们有一个拥有不同项目的Azure DevOps组织。目标是在“操作”项目中存储所有管道和发布 这样做的好处是,避免单个团队处理创建管道或处理机密(.netrc、容器注册表等) 但是,似乎无法在项目a中触发生成验证请求,该请求将触发Operations项目中的管道。某些分支的构建验证只能触发项目本身内部的管道 简言之:项目A中的PR应该触发项目“运营”中的管道 是否有解决方法,或者该功能是否将在不久的将来实现?Validation 跨不同项目构建验证,validation,build,azure-devops,azure-pipelines,project,Validation,Build,Azure Devops,Azure Pipelines,Project,我被困在以下情况中。我们有一个拥有不同项目的Azure DevOps组织。目标是在“操作”项目中存储所有管道和发布 这样做的好处是,避免单个团队处理创建管道或处理机密(.netrc、容器注册表等) 但是,似乎无法在项目a中触发生成验证请求,该请求将触发Operations项目中的管道。某些分支的构建验证只能触发项目本身内部的管道 简言之:项目A中的PR应该触发项目“运营”中的管道 是否有解决方法,或者该功能是否将在不久的将来实现? 看起来很有希望实施。但是从那以后它就安静了。我最初询问您是否使用
看起来很有希望实施。但是从那以后它就安静了。我最初询问您是否使用YAML管道,因为我有一个类似的设置,用于相同的目的,将YAML管道与代码库分开 我大量使用YAML模板来实现这一点。它们是将大部分逻辑排除在源代码repos之外的关键。但是,在源代码本身中仍然需要一个非常轻量级的管道 以下是我建议您如何设置管道:
通过此配置,您可以控制操作/管道回购中的所有管道,而不是将要使用的单个项目。您可以限制对它的访问,因此只有授权的团队成员才能创建/修改管道 您可以选择添加环境检查,该检查要求某些环境从模板继承,这将停止已修改为不使用您创建的管道的部署: Microsoft发布了一本关于使用YAML模板实现安全性的入门书,详细介绍了您还可以使用的一些其他策略:
name: CI-Example-Root-Pipeline-$(Date:yyyyMMdd-HHmmss)
resources:
repositories:
- repository: Templates
type: git
name: Operations/Pipelines
trigger:
- master
extends:
- template: deploy-web-app-1.yml@Templates
parameters:
message: "Hello World"
parameters:
message: ""
stages:
- stage: output_message_stage
displayName: "Output Message Stage"
jobs:
- job: output_message_job
displayName: "Output Message Job"
pool:
vmImage: "ubuntu-latest"
steps:
- powershell: Write-Host "${{ parameters.message }}