Rod*_*rez 1 .net git azure azure-devops azure-pipelines
我有一个 git 分支策略如下:
分支机构:
experimental-feature integrates to develop
develop integrates to master
Run Code Online (Sandbox Code Playgroud)
在每个分支中,我都有一个名为 azure-pipelines.yaml 的文件,其中包含管道构建的规则,每个规则在每个分支中都不同,因为每个文件都有一个与trigger分支名称匹配的属性名称。
IE:master 分支有一个 azure-pipelines.yml,它有一个名为“master”的触发器属性,因为对于 master 分支上的每个更改,都会触发管道。开发和实验功能也是如此。到目前为止,一切都很好。
develop现在,我不明白为什么当我从git创建拉取请求时,master无法识别每个azure-pipeline.yaml(开发和主控)之间的更改。这很好,因为azure-pipeline.yml开发中的内容总是会覆盖master azure-pipeline.yaml,而我不希望这样。
experimental-feature但是,当我通过拉取请求集成时, gitdevelop的更改确实会识别我不想要的文件之间的更改。
有人可以在这里启发我吗?我在微软文档中也找不到它是如何工作的。
小智 5
您可以使用阶段的触发器和条件来仅针对特定分支运行特定阶段。
我建议azure-pipeline.yml为所有分支和所有环境使用一个管道文件。然后,您可以为作业创建模板,即构建作业、部署到非生产作业等。
像这样:
管道:
trigger:
- master
- dev
pr:
branches:
include:
- master
- dev
variables:
- name: vmImage
value: 'ubuntu-latest'
stages:
- stage: Build
displayName: Build stage
jobs:
- job: BuildJob
pool:
vmImage: $(vmImage)
steps:
- template: Jobs/build.yml
- stage: NonProd
displayName: Deploy non prod stage
condition: and(succeeded(), in(variables['build.sourceBranch'], 'refs/heads/master', 'refs/heads/dev'))
jobs:
- deployment: DeploymentJob1
pool:
vmImage: $(vmImage)
environment: non-prod
variables:
- template: Variables/non-prod.yml
strategy:
runOnce:
deploy:
steps:
- template: Jobs/deploy.yml
- stage: Prod
displayName: Deploy prod stage
condition: and(succeeded(), eq(variables['build.sourceBranch'], 'refs/heads/master'))
jobs:
- deployment: DeploymentJob2
pool:
vmImage: $(vmImage)
environment: prod
variables:
- template: Variables/prod.yml
strategy:
runOnce:
deploy:
steps:
- template: Jobs/deploy.yml
Run Code Online (Sandbox Code Playgroud)
触发器
trigger:
- master
- dev
Run Code Online (Sandbox Code Playgroud)
pr:
branches:
include:
- master
- dev
Run Code Online (Sandbox Code Playgroud)
状况
condition: and(succeeded(), in(variables['build.sourceBranch'], 'refs/heads/master', 'refs/heads/dev'))
Run Code Online (Sandbox Code Playgroud)
condition: and(succeeded(), eq(variables['build.sourceBranch'], 'refs/heads/master'))
Run Code Online (Sandbox Code Playgroud)
同样,您可以混合搭配一些东西以更好地满足您的目的。
请查看存储库以供参考: https://github.com/iqans/azure-pipeline-demo
| 归档时间: |
|
| 查看次数: |
2083 次 |
| 最近记录: |