允许 PR 构建验证构建而不发布工件

2024-04-24

我正在尝试在我们的主分支上为 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(使用前将#替换为@)

允许 PR 构建验证构建而不发布工件 的相关文章

  • 为什么会导致合并冲突?

    这是我的 git 存储库的初始快照 在树枝上master file m1包含 L1 在树枝上dev file m1包含 L1 L2 如果我尝试合并dev from master 这会导致冲突 git checkout master Swit
  • Git checkout 分支从其他分支留下目录树

    我有一个branch2 其源是branch1 并重命名了源自branch1 的目录 当签出branch1时 重命名的目录仍然存在 但没有标记为未暂存的修改 重命名的目录当然不会作为branch1 上的提交出现 为什么会出现这种情况 上述目录
  • 我们如何从团队项目中的所有 Git 存储库连接到 TFS?

    我正在运行最新的 Visual Studio 2013 Ultimate 和 Update 1 我们也有最新的 Team Foundation Server 2013 我们中的一些人对新的 Git 存储库集成感到非常兴奋 但似乎有一个相当大
  • 无法获取 https://gerrit.googlesource.com/git-repo/clone.bundle

    我尝试按照以下说明创建一个 git 存储库 source android com source downloading html installing repo 但是当我尝试在工作目录中初始化存储库时 使用 Ubuntu 出现以下错误 wo
  • 将源代码从 git 迁移到 TFVC

    我们使用的是Visual Studio Online 我们使用TFS的git支持 我们现在想停止使用 git 并使用 TFVC 将源代码迁移到 TFVC 的最佳解决方案是什么 假设您正在 VSO 中创建另一个项目并移动源代码 按照目前的情况
  • 两个人同时在 git 中处理一个文件[重复]

    这个问题在这里已经有答案了 可能的重复 当两个对等点同时将更改推送到同一个远程时 git 如何工作 https stackoverflow com questions 4643998 how git works when two peers
  • 部署组和部署池有什么区别?

    在 Azure DevOps 中创建部署组时 它会自动为您创建部署池 但是 从 组织设置 gt 部署池 面板 您可以创建新的部署池 而无需创建部署组 部署组和部署池之间有什么关系 例如 一个部署组可以链接到多个部署池吗 这是一个很好的博客
  • Pulumi Azure Pipeline 任务

    我是 Pulumi 的新手 所以目前我正在努力尝试在我的 Azure 发布管道中运行它以创建我的基础设施 在开发过程中 我使用本地存储来存储我的 pulumi 状态 pulumi login local 我已经创建了我的堆栈 dev 是其中
  • 如何在Azure上运行nodejs、express js项目的启动命令?

    我在用Azure 开发运营对于我的应用程序 我不确定如何为该项目设置启动命令 如果我将它添加到创建的管道中的任务中 它会给出一个错误 也许是因为该过程永远不会结束 实际上 我可以运行 npm install 并创建工件 但我需要应用程序启动
  • 为什么 git 在 git add 上出现“断言失败”错误?

    我分叉了一个存储库 然后将其克隆到我的 Mac 上 YATC目录 我在另一个目录中有一个先前创建的 Xcode 项目 TwitterTimeline 我将其复制到 YATC directory I did git add 在 YATC 目录
  • 错误“致命:无法快进,正在中止”

    为什么 Git 不再允许我快进合并 如果我尝试使用强制它 ff only 我收到消息 fatal 无法快进 中止 我意识到有巨大的优势merge no ff 但我只是困惑为什么我不能 ff only now 免责声明 这些命令会将远程分支的
  • 如何将空目录添加到 Git 存储库?

    如何将空目录 不包含文件 添加到 Git 存储库 使目录 在存储库中 保持 几乎 空的另一种方法是创建一个 gitignore该目录中的文件包含以下四行 Ignore everything in this directory Except
  • Git Grep 颜色选项解释和/或比较

    我正在尝试自定义我的 Git 颜色 读完后文档 https git scm com docs git config 我找到了我想要设置的选项 除了 Grep 之外 一切都工作正常 我意识到 我过去并没有真正使用过它 我想用相同的调色板为其设
  • 使用 Git 和 Eclipse 管理 Android 项目

    我相信我有一个非常常见的问题 它会影响具有多个应用程序版本的开发人员 在我的例子中 我有两个 付费版本和免费版本 为了管理这两个版本 我使用具有 2 个不同分支的同一个 git 项目 免费和付费 然而 我的源代码包名称彼此不同 如预期 并且
  • git merge,保留两者

    为了合并 我用它来 保留我的 git merge X ours foo 这是 保留他们的 git merge X theirs foo 然而 在我最近的合并中 看起来最好保留双方 Git 是否有一个 策略 来避免手动编辑文件 没有解决这些冲
  • git 克隆密码存储或缓存在哪里?

    环境定义 使用Windows 10操作系统 我使用 githttps git scm com https git scm com 和 Github 的 Git Shell 背景 当我发出如下所示的 git clone 命令时 git clo
  • 将生成的文件存储在 Git 中

    我们有一个相当大且过于混乱的代码库 我们希望使用 Git 进行迁移 目前 它是一个大的整体块 不能轻易地分割成更小的独立组件 该代码构建了大量共享库 但它们的源代码如此交错 目前无法将其干净地分离到单独的存储库中 我不太关心 Git 是否可
  • 如何调试 Jenkins 作业中无法运行程序“C:\Program Files\Git”?

    我正在使用 jenkins 构建我的 git 项目 这是我在查看日志时收到的错误 我在 jenkins 中使用 git 插件 您将如何解决该错误消息 Started by user anonymous Building in workspa
  • Git 合并如何处理同时提交?

    给定一个具有两个分支的存储库 每个分支都有独立的提交 Branch Commits final e g i master a b c d f h 上图中的字母很重要 即 master 和 final 同时正在开发中 并且必须保留两个分支中的
  • 具有服务器端挂钩的托管 Git 解决方案?

    已经有一个类似的 版本控制托管解决方案 带有预提交挂钩 关于SO的问题 然而 提出这个问题的用户只需要客户端钩子 我正在寻找一个允许您配置的 Git 主机服务器端 hooks 我寻找这个的原因是为了防止开发人员能够在特定分支上 push f

随机推荐