【问题标题】:How to stop a push with compile mistakes?如何通过编译错误停止推送?
【发布时间】:2020-09-29 09:20:46
【问题描述】:

我最近向服务器推送了一个代码错误(Javascript-使用 const 而不是 let),管理员说它阻止了其他开发人员推送他们的代码?在其他网站/工作中,我确定我之前做过一次,但它只是在日志文件中报告“构建失败”并且更新被拒绝。

在这种情况下,服务器没有更新(因为它一直没有更新)但其他开发人员随后的推送也没有更新。

服务器在我推送之前没有更新的事实(正如其他开发人员报告的那样)表明我的语法错误并没有导致服务器没有更新推送代码的问题。

帮助!他们指责我在我的“语法错误”推送之前在服务器上存在整整一周的问题!

其他开发人员和 AWS DevOps 的任何回复都将受到欢迎。..

不是通常都有服务器挂钩代码,以便推送的代码被拒绝并且不会对服务器应用程序造成损坏吗?

【问题讨论】:

  • 是的。您的 CI/CD 管道应该开始尝试构建您签入的代码,然后对其执行单元测试和集成测试,只有在成功时才部署它。但是无论如何,您都不应该将代码检查到您的生产分支中。所有代码都应该写在一个新的分支中,这样当这样的事情发生时,它不会影响生产甚至 UAT。
  • 谢谢队长。对于任何开发人员在 CI/CD 管道上通过所有检查近 2 周的代码推送,服务器都没有响应。我的推送没问题,但我用日志语句匆忙进行了第二次推送,以查看暂存服务器是否正在运行我的代码。感谢您的“您的 CI/CD 管道应该开始尝试构建代码”代码..

标签: javascript amazon-web-services server devops githooks


【解决方案1】:

没有强制使用分支和拉取请求是 DevOps(或负责 DevOps 的人)的错。

您不应该直接在您的生产或开发分支上进行更改。每个新功能或错误修复都应该在从 Development 分支出来的新分支中完成,这样如果发生这种情况,可以拒绝更改而不影响代码的当前迭代。

当您感觉自己已完成开发工作时,您可以创建一个拉取请求,该请求可以由您的上级甚至团队中的随机开发人员进行审核,然后在将其合并回开发之前获得批准。

更新:如果您使用 Git,我建议您在工作站上安装 Git Flow。它标准化了错误修复和功能的工作方式,并简化了分支管理。

【讨论】:

  • 我应该补充一点,“拉取请求”甚至不需要在 Git 中完成。另一个开发人员可以简单地将您的分支“拉”到他们的本地机器上并尝试运行它并测试您正在处理的功能。如果它符合预期,他们可以竖起大拇指,然后有人可以将更改合并到 dev 分支中,然后从那里进入生产。
【解决方案2】:

githooks 是一个可选的解决方案。 另一种选择是为您的项目应用 CI/CD,任何代码构建失败、es-lint 检查、单元测试都会为您触发警报电子邮件。 您可以与团队讨论这两个选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-06
    相关资源
    最近更新 更多