jenkins - Github 设置和 Jenkins 缺少预提交检查或远程运行
问题描述
仅举一个例子,可以使用诸如 TeamCity(类似于 Jenkins)之类的工具提交远程运行,它将在用户尝试提交的内容上应用 delta/patch 并产生结果,无论更改是否从一组配置的检查中都是好的对于那个项目。
使用 Github 和 Jenkins,是否可以使用任何插件来实现此类验证?这将避免破坏构建?
我知道通过拉取请求和状态检查可以实现类似的最终结果。但是如果没有提交/推送到 Git 的远程仓库 - Jenkins 有没有办法处理这个验证并产生初始结果?
解决方案
不可能让 GitHub 对它没有的数据执行检查,所以如果你不将数据推送到远程服务器,GitHub 将不会知道任何关于它的信息,因此什么也不做。
Jenkins 确实有一个 REST API,您可以使用它来执行此操作,前提是您为每个开发人员配备了适当的凭据。但是,这不是常见的情况,也不是推荐的配置。
您最好使用存储库中的脚本,用户可以将其安装为挂钩或从挂钩中调用,以执行您想要的测试。如果您的 CI 作业在您的存储库中运行脚本,那么在它们之间共享代码应该很容易。
请注意,您不应该强制执行预提交挂钩,因为它们会干扰高级用户(他们可能会故意做出不完整的临时提交)并且它们可能会被用户禁用。任何类型的必要检查都应该作为 CI 的一部分进行,这样可以适当地执行策略。
推荐阅读
- html - Chrome 和 Safari 表格单元格的高度不同?
- reactjs - 带有回调的 useState 不更新 useCallback 依赖项
- amazon-web-services - 如何使用 lambda 触发 S3 静态网站部署?
- python - 如何使用等待迭代并附加到数据帧
- angular - 具有虚拟滚动的角度材质多选组件
- node.js - 猫鼬对种群的混淆行为
- kubernetes - 在 Kubernetes 中停止 pod 的正确方法是什么
- docker - 带有自定义配置文件的 Docker Nginx:未知指令“服务器”
- python - `cv.findHomography` 的解释
- javascript - 如何创建一个数组并让一个计数器通过它运行以存储在 for 循环中创建的值