Azure devops Azure管道构建阶段验证
作为my org中的一个集中式azure devops团队,我们希望确保使用标准扩展yaml模板构建特定技术类型的代码。由于“扩展”功能和最近在环境级别引入的模板检查,我们现在能够验证开发人员YAML是否扩展了我们的标准YAML。但此检查仅在构建阶段之后运行。我们能在构建阶段之前评估一下吗 我们能在构建阶段之前评估一下吗 恐怕,不,直到现在才可能是真的,尤其是贵公司对YAML结构检查非常严格Azure devops Azure管道构建阶段验证,azure-devops,azure-pipelines,azure-pipelines-release-pipeline,azure-pipelines-build-task,Azure Devops,Azure Pipelines,Azure Pipelines Release Pipeline,Azure Pipelines Build Task,作为my org中的一个集中式azure devops团队,我们希望确保使用标准扩展yaml模板构建特定技术类型的代码。由于“扩展”功能和最近在环境级别引入的模板检查,我们现在能够验证开发人员YAML是否扩展了我们的标准YAML。但此检查仅在构建阶段之后运行。我们能在构建阶段之前评估一下吗 我们能在构建阶段之前评估一下吗 恐怕,不,直到现在才可能是真的,尤其是贵公司对YAML结构检查非常严格 到目前为止,环境只能是YAML的部署作业中的目标 换句话说,只有在其中配置-deployment:作
到目前为止,
环境
只能是YAML的部署作业
中的目标
换句话说,只有在其中配置-deployment:
作业的阶段才能使用环境
如果您的公司政策允许,实际上,这里的解决方法是将-deployment:
作业添加到构建
阶段,但将步骤留空。如下示例:
- stage: build
jobs:
- job: buildjob
steps:
- checkout: none
- task: oneLuckiGetPostmanScripts@1
inputs:
fileLocation: '$(Build.ArtifactStagingDirectory)/postman'
apiKey: '$(postmankey)'
- deployment: DeployWeb
pool:
vmImage: 'Ubuntu-16.04'
# creates an environment if it doesn't exist
environment: 'Verify'
- stage: test
jobs:
- job: testjob
steps:
- checkout: none
- bash: |
echo $(Build.ArtifactStagingDirectory)/postman
displayName: 'dir'
- stage: deploy
jobs:
- deployment: DeployWeb
displayName: deploy Web App
pool:
vmImage: 'Ubuntu-16.04'
# creates an environment if it doesn't exist
environment: 'Verify'
strategy:
runOnce:
deploy:
steps:
- script: echo my first deployment
这可以做你想做的事情。但恐怕您的政策不允许这样做。很好的解决方法,在管道中添加了YAML合规性阶段,这是构建之前的部署阶段,创建了“验证”环境,在其中添加了扩展模板签入,并按预期工作。唯一似乎仍然失控的事情是团队仍然可以创建自己的管道yaml,完美的解决方案是在任何构建上连接这个验证阶段invocation@Sanjeev是的,你是对的。正如我所说的,它的局限性只是一个阶段的工作。所以,如果您想要检查所有,您必须让它在每个阶段中定义,以使这个扩展检查对所有人都有效。