Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
增加Github Enterprise中受保护的“主”分支的代码覆盖率门_Git_Github_Jenkins_Code Coverage_Git Flow - Fatal编程技术网

增加Github Enterprise中受保护的“主”分支的代码覆盖率门

增加Github Enterprise中受保护的“主”分支的代码覆盖率门,git,github,jenkins,code-coverage,git-flow,Git,Github,Jenkins,Code Coverage,Git Flow,我已经设置了Jenkins系统,以便在合并到master(Gitflow)之前自动为每个pull请求运行测试。master分支受保护(),这意味着如果对master的测试运行失败,将阻止对其的拉取请求 现在一切正常,直到CTO决定单方面增加代码覆盖率。代码覆盖率在Instanbul“.nycrc”文件中定义,他希望每周/sprint能够增加2-4%(当前覆盖率非常低,为30%)。他希望通过修改“.nycrc”文件而不添加测试来提交/推动这种增加。这意味着所有构建都将失败,在团队添加测试之前,所有

我已经设置了Jenkins系统,以便在合并到master(Gitflow)之前自动为每个pull请求运行测试。
master
分支受保护(),这意味着如果对master的测试运行失败,将阻止对其的拉取请求

现在一切正常,直到CTO决定单方面增加代码覆盖率。代码覆盖率在Instanbul“.nycrc”文件中定义,他希望每周/sprint能够增加2-4%(当前覆盖率非常低,为30%)。他希望通过修改“.nycrc”文件而不添加测试来提交/推动这种增加。这意味着所有构建都将失败,在团队添加测试之前,所有PRs都无法合并

进行此操作的最佳方式是什么?请告知。我不想每次他想要增加代码覆盖率时都关闭/打开分支保护。CTO的“硬手”方法已经确定(不可协商):团队将在其他团队之前添加测试,以使构建绿色且PR可再次合并


附带任务:团队还可以降低“.nycrc”文件中的覆盖率阈值,以合并他们的PRs。我怎样才能预防它?我不认为我的团队中有人敢弄乱那个文件(因为CTO一直在那个文件的顶部),但我想为更大的团队学习一种通用的方法

通常的方法是在两个不同的分支中有两个门:

  • 一个受保护,由您控制的低“
    .nycrc
    ”文件
  • 一个受保护,由管理器控制“
    .nycrc
    ”文件
用于部署到生产环境中的代码必须来自第二个关卡


第一个关卡允许团队提供和合并PRs,同时异步添加更多测试以符合第二个分支的资格。

我所做的是将CTO添加到Github组织的管理组。在分支保护设置中,我在“合并前需要通过状态检查”下禁用“包括管理员”(转到存储库设置->分支->主)。通过这种方式,CTO可以使用他的管理权限强制合并请求以提高代码覆盖率阈值(它们通常会失败)


原始问题中的“次要任务”仍然没有解决。对于我公司的特定设置,我有自己的解决方案,但我认为总体来说效果不佳。

我们的目标是制作CI/CD。有可能只有一个代码覆盖率文件吗?目标是将代码合并到主机上,以便准备部署。@ TunSi两个门与Ci/CD不兼容,但是如果您想要MART,则将两个门视为两个RePOS,其中一个覆盖策略是宽松的,一个策略更严格。我发现一个更简单的解决方案,只适用于GITHUB,而不是一般Git设置。谢谢你的评论。我还考虑将定义代码覆盖率阈值的文件“.nycrc”移动到一个单独的repo。有趣的替代方案,比我的答案更精确+1.