gpt4 book ai didi

php - CI环境中的自动部署PHP(Jenkins)

转载 作者:IT王子 更新时间:2023-10-29 00:04:02 28 4
gpt4 key购买 nike

我目前正在考虑为一个由一小部分开发人员团队共享的项目建立一个强大的 CI 和部署环境。目标是在测试事物的方式、整体代码质量和完成部署的方式上保持一定的一致性。

我已经阅读了有关 Jenkins、Sonar、Maven、Capistrano、Phing、ANT 等的信息……老实说,我迷失在所有这些工具/技术中,希望您能验证我的理解并让我了解实现这一目标的最佳方法。

到目前为止我已经设置了什么:

  • Git:我们使用 git 作为版本控制系统,并为所有需要由 CI 工具分析的新开发人员提供了一个“开发”分支。
  • Jenkins:Jenkins 由 GIT Hook (在开发分支上)触发,并将执行 PHING 脚本执行以下操作:

    • Lint:验证 PHP 代码执行、代码分析器
    • PHPLoc:获取有关 PHP 代码的一些统计信息(复杂性、依赖性..)
    • PDepend:代码分析(不确定与PHPLoc的区别)
    • phpmd:困惑检测器(未使用的参数,复杂的代码......)
    • phpcpd:检测复制粘贴代码
    • PHPcs:验证编码标准
    • Phpdox:生成 PHP 文档
    • Php_Codebrowser:生成 PHP 代码的可浏览表示,并突出显示违规...
    • PHPUnit:运行 PHP 测试

    然后,Jenkins 将所有报告/数据发送给 Sonar,而不是 sonar-runner。

  • Sonar 正在收集所有这些数据,并将它们存储在数据库中,该数据库提供了一种分析应用程序代码随时间演变的方法。它还以比 Jenkins 更好的方式显示信息。

缺少 block

  • 自动部署到 QA:当构建脚本成功(基于测试成功)时,我想自动部署到 QA 环境。这应该会触发在 QA 上提取正确数据、对数据库进行更改以及潜在的文件/文件夹清理和权限设置的过程。
  • 自动部署到 PROD:这应该与上述相同,但基于 master 分支。我们还应该在部署后对该 PROD 环境添加另一轮测试。

工具评论

  • Git:这个不用解释了,全是版本控制
  • Jenkins:CI 工具,可自动构建(代码验证 + 测试)
  • 声纳:报告工具(随着时间的推移可视化构建数据)
  • Maven:不确定这个。它是部署的缺失部分吗?还是其他报告工具?
  • Capistrano:部署工具

您的意见 :-)

  • 您对我的 CI 整体设置的看法(有意义吗,我是否使用了正确的工具?)
  • 根据您的经验,最好的部署工具是什么?
  • 由于 Jenkins 是整个 CI/部署架构中的一种“调度员”,它是否也触发了部署?如果是,我认为可以根据构建状态(成功/失败)触发一些操作?

非常感谢您的宝贵时间和帮助!

最佳答案

整体看起来不错。我个人没有使用过 Sonar(但知道)或 Capistrano(甚至从未听说过这个),所以不能对它们发表评论。

Maven是一个依赖、构建和部署工具,主要针对Java项目。您已经在处理 Jenkins 的“构建”,所以不用担心 Maven。

至于部署,我写了一个很detailed explanation here如何部署 Jenkins 构建。 Jenkins 完全有能力完成您的部署,那么为什么还要费心在组合中添加另一个工具呢?您唯一需要的是一个 bash(或批处理,取决于您的环境)脚本来获取您的 PHP 文件(我建议将它们压缩为构建作业的一部分)并将它们复制/部署到远程服务器上。

如果您有更具体的问题,请提出。

关于php - CI环境中的自动部署PHP(Jenkins),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22322124/

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