我正在尝试在我们的主分支上为 PR 设置一些构建验证(我们正在使用 Git 和 VSTS)。我添加了一些构建策略来根据已更改的文件启动各种构建。对于某些背景,我们在流程的早期创建 PR,以便我们可以在开发功能分支时跟踪更改并添加评论。
现在,我希望这些构建能够运行并成功,以便完成 PR,但是,我不希望发布这些构建的输出(工件)。我们的发布会查看要部署的最新构建工件,在本例中,最新构建工件将来自 PR。如果我们确实允许发布 PR 中的这些构建工件,那么我们会将功能分支代码(来自 PR)发布到我们的主站点,这是不可取的(我们有一个单独的发布来处理我们的功能)分支机构)。
本质上,在进行 PR 时,我只想运行构建以确保一切正常,然后在构建完成后将其丢弃。
除了仅为 PR 验证创建构建定义之外,我不确定我还能做什么。我用谷歌搜索并四处询问,但我要么没有提出正确的问题,要么答案并不像我希望的那么简单。
希望我已经包含了足够的细节来解释我的问题。
TL;DR
如何在 PR 上运行构建验证,而无需发布选择并部署验证构建产生的构建工件?
编辑(更多详细信息)
我尝试向发布任务添加条件(还尝试将发布放入一个阶段并有条件地运行它)。但是,当我去制作新版本时,它仍然会看到已运行的构建定义。现在,我想如果我尝试发布该构建定义,它将会失败,因为没有创建任何工件。但我什至不想在发布时看到该构建定义(不想意外选择它)。
您可以将发布工件任务放在构建定义的末尾,然后将“运行此阶段”与“使用变量表达式的自定义条件”结合使用。您也可以按照 Dan 在下面的评论中建议的那样在任务级别执行此操作。
not(eq(variables['Build.Reason'], 'PullRequest'))
https://learn.microsoft.com/en-us/vsts/pipelines/process/conditions?view=vsts https://learn.microsoft.com/en-us/vsts/pipelines/process/conditions?view=vsts
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)