gpt4 book ai didi

azure - 您能否在 Azure DevOps 中触发 CD 管道之前组合多个 CI 构建?

转载 作者:行者123 更新时间:2023-12-03 00:20:36 27 4
gpt4 key购买 nike

我们有 2 个 CI 版本,一个用于数据库,一个用于 Dotnet。当向主分支提交相应目录(即/database 或/dotnet)时,会触发这些操作。

在 CI 构建之后,会触发 CD 管道来实际部署新资源。

我遇到的问题是,如果我将 PR 合并到对 /database/dotnet 都有更改的 master 中,则会触发 2 个 CI 构建(正确) )但随后我也得到了 2 个 CD 部署(不正确!)。我正在尝试找出一种方法,让它等待两个 CI 构建,因为它们位于同一提交中,然后触发 CD 管道。

有人知道这是否可能吗?

以下是精简代码的示例文件。

文件结构:

├── CI-Database.yml
├── CI-Dotnet.yml
├── CD-Pipeline.yml
├── database
│ └── adatabasefile.sql
├── deploy-env.yml
└── dotnet
└── adotnetfile.cs

CI-Database.yml

trigger:
branches:
include:
- main
- releases/*
paths:
include:
- database

name: $(Build.DefinitionName)_$(Date:yyyyMMdd)$(Rev:.r)_$(SourceBranchName)

pool:
vmImage: 'ubuntu-latest'

steps:
- script: echo 'Hello from database'

- publish: '$(Build.SourcesDirectory)/database'
artifact: 'the-database'

CI-Dotnet.yml

trigger:
branches:
include:
- main
- releases/*
paths:
include:
- dotnet

name: $(Build.DefinitionName)_$(Date:yyyyMMdd)$(Rev:.r)_$(SourceBranchName)

pool:
vmImage: 'ubuntu-latest'

steps:
- script: echo 'Hello from dotnet pipeline'

- publish: '$(Build.SourcesDirectory)/dotnet'
artifact: 'the-dotnet'

CD-Pipeline.yml

trigger:
branches:
include:
- main
paths:
include:
- infrastructure

pool:
vmImage: 'ubuntu-latest'

resources:
pipelines:
- pipeline: databasepipeline
source: CI-Database
trigger:
branches:
include:
- main
- pipeline: dotnetpipeline
source: CI-Dotnet
trigger:
branches:
include:
- main

stages:
- stage: DeployDEV
displayName: 'DEV Deploy'
jobs:
- job:
steps:
- pwsh: Write-Host "Deploy the consumed CI resources here"

最佳答案

没有。多个资源触发器是,而不是。这是已实现的行为,无法更改。您唯一可以改变的是您的流程。

一般来说,没有理由为构建和部署建立单独的管道。您可以使用 dependsOn 关系和条件阶段将单个管道分解为多个作业。

关于azure - 您能否在 Azure DevOps 中触发 CD 管道之前组合多个 CI 构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69811477/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com