gpt4 book ai didi

适用于所有存储库的 Azure DevOps 通用分支策略构建管道

转载 作者:行者123 更新时间:2023-12-03 00:22:09 25 4
gpt4 key购买 nike

我们正在为我们的组织制定政策。我们的一个需求是使用 Sonarcloud 对每个 Pull 请求进行构建和注释。有没有办法创建一个通用的 ci 构建管道,该管道将在每个 PR 上运行,检查相应的存储库,检测项目类型(或读取 list 文件等)进行代码分析和构建,注释 PR?

因此,在 Azure DevOps 存储库中,您可以为所有主分支创建通用分支策略。我尝试使用独立的 yaml 管道,但当我创建 pr 时它从未启动。有人可以帮助我走上正确的道路吗?我需要在 yaml 中创建资源吗?我可以使用 PR 中的任何变量来检测存储库和分支吗?

为了让每个人都理解,您可以创建通用的分支机构政策和个人。

非常感谢

最佳答案

由于 this thread 中报告的已知问题,您将需要在 yaml 的资源部分中添加所有存储库。 .

resources:
repositories:
- repository: MyRepo
type: git
name: MyRepo

但是,如果您在构建验证中使用经典的 UI 管道而不是 yaml 管道。您不需要在资源部分添加所有存储库。但是您需要跳过管道来同步源:(进入管道编辑页面-->单击“获取源”-->选中“不同步源”)

enter image description here

您可以使用predefined variables获取有关拉取请求的信息。见下文:

$(Build.Repository.Name)
$(System.PullRequest.PullRequestId)

然后您可以在脚本任务中运行 git 命令来检查拉取请求分支。请参阅下面的示例:

resources:
repositories:
- repository: MyRepo
type: git
name: MyRepo
pool:
vmImage: windows-latest

steps:
- checkout: none
- powershell: |

git clone "https://$(System.AccessToken)@dev.azure.com/OrganizationName/$(System.TeamProject)/_git/$(Build.Repository.Name)"

cd "$(Build.Repository.Name)"
git fetch origin pull/$(System.PullRequest.PullRequestId)/merge:pr-$(System.PullRequest.PullRequestId)
# checkout pr branch
git checkout pr-$(System.PullRequest.PullRequestId)

注意:您需要授予build service account目标存储库的读取权限

关于适用于所有存储库的 Azure DevOps 通用分支策略构建管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66530141/

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