Way*_*yne 16 git build-automation continuous-integration build-process unit-testing
需要符合以下规范的git工具.一个人已经存在吗?如果没有,我将创建一个脚本并使其在GitHub上可供其他人使用或贡献.有没有一种完全不同的更好的方法来解决构建/测试每个提交到git存储库中的分支的需要?不仅是最新的,而且每个人都回到了一个起点.
背景:我们的开发环境使用独立的持续集成服务器,非常棒.但是,仍然需要在每个开发人员的PC上进行本地完全构建,以确保在推送到CI服务器时提交不会"破坏构建".不幸的是,通过自动单元测试,这些构建强制开发人员每次等待10或15分钟进行构建.
为了解决这个问题,我们在每台开发者PC上设置了一个"镜像"git存储库.所以我们在主存储库中开发,但任何时候都需要本地完整构建.我们在镜像存储库中运行几个命令来获取,检出我们想要的提交和构建.它的工作非常可爱,所以我们可以继续在主要工作中进行并行构建.
现在只有一个主要问题.我们希望确保每个提交都构建并通过测试.但是我们经常忙着疏忽建立几个新的提交.然后,如果构建失败,则必须进行二等分或手动构建每个临时提交以确定哪个中断.
此工具的要求:
该工具将查看另一个repo,默认情况下为origin,获取并将分支中的所有提交与2个提交列表进行比较.一个列表必须保留成功构建的提交,其他列表提交失败.
它标识任何列表中尚未提交的提交,并开始按照提交的顺序在循环中构建它们.它在第一个失败时停止.
该工具在尝试构建每个提交后,将每个提交适当地添加到成功或失败的列表中.
该工具将忽略成功列表中最早提交之前的任何"遗留"提交.这个逻辑使得下一个点的起点成为可能.
初始点.该工具构建一个特定的提交,如果成功,它将被添加到成功列表中.如果它是成功列表中最早的提交,它将成为"起点",以便在此之前的任何提交都不会检查构建.
只有线性树支持?就像bisect一样,这个工具最适用于提交树,至少从它的起点开始,线性没有任何合并.也就是说,它应该是一个完全通过rebase和快进提交构建和更新的树.
如果它在分支中的一次提交失败,它将停止而不构建在该分支之后的其余部分.相反,如果只是转移到另一个分支,如果有的话.
默认情况下,该工具必须执行一次这些步骤,但允许参数循环使用选项来设置循环之间的秒数.像Hudson或CruiseControl这样的其他工具可以做更多花哨的调度选项.
该工具必须具有良好的默认值,但允许可选控制.
哪个回购?默认情况下来源.
哪个分支?所有这些都是默认的.
什么工具?默认情况下,由存储库的根文件夹中名为"buildtest","buildtest.sh""buildtest.cmd"或"buildtest.exe"的用户提供的可执行文件.
循环延迟?默认情况下运行一次,选项在迭代之间经过几秒后循环.