我们想分享一些我们即将对开发环境进行的更改。
主分支
我们当前的主分支或多或少是暂存分支的副本,但可能落后一些提交。我们使用 Jenkins 服务器,它对暂存分支的最后更改运行测试,并将它们集成到主分支中。
虽然听起来是个好主意,但它会导致很多问题。这是因为主分支受保护,只能在所有 PR(拉取请求)成功测试后才集成更改。在理想情况下,这将奏效。实际上,由于与 PR 无关的情况,PR 上的一些测试并非处于正确状态。Jenkins 服务器上的一些测试是在较旧的环境中运行的,测试失败的原因是环境问题,而不是代码错误。这会导致测试需要很长时间才能完成。
所有这一切的结果是,尝试使主分支与暂存分支保持同步的 Jenkins 服务器并非最佳选择,并导致了许多问题。因此,我们计划很快关闭主/暂存分支同步,理想情况下是在 7 月 9 日星期天。
如果您出于任何原因使用主分支,则需要切换到暂存分支才能了解 Joomla! 代码库的最新情况。
关闭同步后 7 天,我们将删除主分支。我们检查了是否可以将暂存分支重命名为主分支,但 GitHub 不允许重命名。我们需要手动将所有 PR(超过 400 个)移动到主分支,然后删除暂存分支。这工作量很大,还会导致更多问题,因此我们决定不重命名它。
测试设置
几周前,我们进行了一次测试基础设施代码冲刺。我们当前设置的问题是,我们使用了太多不同的工具来测试我们的代码库。Jenkins、Drone、Docker、Travis、AppVeyor 和 Selenium 只是主要的工具。我们的团队成员需要了解这些工具的设置和使用方式。这一要求给团队带来了沉重的负担。冲刺的目标是减少工具集,并创建一个满足我们测试需求的设置。我们决定将 Jenkins 与 Docker 结合使用作为基本工具。一切进展顺利,我们现在并行运行 Jenkins 和当前设置。我们的新的 Jenkins 服务器(与本文档“主分支”部分中提到的服务器不同)将作为第一步,取代 Drone 和 Travis。如果我们获得 Windows 服务器,我们也可以取代 AppVeyor,但目前这不是优先事项。
到目前为止,结果非常棒,令人鼓舞。我们现在正在运行 Drone 和 Travis 上的所有测试,并且已经集成了系统测试。此设置的运行时间不到 4 分钟。我们之前的设置需要更长时间才能完成测试。
在接下来的几周内,我们将从我们的设置中删除 Drone 和 Travis,当我们确定我们的新设置能够正常运行时,我们将进行删除。