gpt4 book ai didi

unit-testing - 有什么工具可以让 git 在单独的存储库中构建对分支的每次提交?

转载 作者:IT王子 更新时间:2023-10-29 01:29:12 24 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

3年前关闭。




Improve this question




需要满足以下规范的 git 工具。一个已经存在了吗?如果没有,我将创建一个脚本并将其发布在 GitHub 上供其他人使用或贡献。是否有一种完全不同且更好的方法来解决构建/测试对 git 存储库中分支的每次提交的需求?不只是到最新,而是每个人都回到某个起点。

背景:我们的开发环境使用了一个单独的持续集成服务器,非常棒。但是,仍然需要在每个开发人员的 PC 上本地进行完整构建,以确保提交到 CI 服务器时不会“破坏构建”。不幸的是,对于自动单元测试,这些构建迫使开发人员每次构建都要等待 10 或 15 分钟。

为了解决这个问题,我们在每台开发人员 PC 上设置了一个“镜像”git 存储库。所以我们在主存储库中开发,但任何时候都需要本地完整构建。我们在镜像存储库中运行几个命令来获取、 check out 我们想要的提交并构建。它的工作非常可爱,所以我们可以继续在主要的工作中并行构建。

现在只有一个主要问题。我们希望确保每个提交都构建并通过测试。但是我们经常忙于并忽略构建几个新的提交。然后,如果构建失败,您必须对每个临时提交进行二等分或手动构建,以确定哪个失败。

此工具的要求:

  • 该工具将查看另一个 repo,默认情况下为 origin,获取分支中的所有提交并将其与 2 个提交列表进行比较。一个列表必须包含成功构建的提交,其他列表必须包含失败的提交。
  • 它识别尚未在任一列表中的任何提交,并开始按照提交的顺序在循环中构建它们。它在第一个失败的地方停止。
  • 在尝试构建每个提交之后,该工具适本地将每个提交添加到成功或失败的列表中。
  • 该工具将忽略成功列表中最早提交之前的任何“遗留”提交。这个逻辑使得起点在下一个点成为可能。
  • 初始点。构建特定提交的工具,如果成功,它将被添加到成功列表中。如果它是成功列表中最早的提交,则它成为“起点”,以便在此之前的任何提交都不会被检查以进行构建。
  • 只有线性树支持?就像 bisect 一样,这个工具在提交树上效果最好,至少从它的起点来看,它是线性的,没有任何 merge 。也就是说,它应该是一个完全通过 rebase 和快进提交构建和更新的树。
  • 如果它在一个分支中的一次提交失败,它将停止而不构建该分支之后的其余部分。相反, if 将移动到另一个分支,如果有的话。
  • 默认情况下,该工具必须执行一次这些步骤,但允许参数循环,并带有设置循环间隔秒数的选项。 Hudson 或 CruiseControl 等其他工具可以做更多奇特的调度选项。

  • 该工具必须具有良好的默认值,但允许进行可选控制。
  • 哪个 repo ?默认原点。
  • 有哪些分店?默认情况下所有这些。
  • 什么工具?默认情况下,由用户在存储库的根文件夹中提供名为“buildtest”、“buildtest.sh”、“buildtest.cmd”或 buildtest.exe”的可执行文件。
  • 循环延迟?默认情况下运行一次,并选择在迭代之间的几秒钟后循环。
  • 最佳答案

    我写了一个我称之为 git test-sequence 的工具前阵子正是这样做的。

    我只是在考虑写博客,因为一个 friend 告诉我这让他本周节省了大量工作。

    关于unit-testing - 有什么工具可以让 git 在单独的存储库中构建对分支的每次提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2530015/

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