我想设计一个如下图所示的wordpress开发流程:
首先,我想为我的Wordpress站点创建一个bitbucket存储库。从这个存储库中,我们所有的软件开发人员都应该能够将站点克隆到他们的本地机器上进行开发。对于开发,所有开发人员都应该有一个本地数据库来测试更改。
在开发人员完成一项任务之后,他应该能够将他的更改推送到存储库。当sprint完成时,我希望将所有来自repo with Jenkins管道/作业的更改发送到测试环境中。在此环境中,测试人员应该能够使用来自prod系统的克隆数据库测试所有新功能(包括开发更改)。
当所有测试都成功完成后,我希望能够将数据库更改应用到prod系统(使用SQL脚本),并将所有更改与其他Jekins管道/作业一起发送到prod系统。
你觉得这行得通吗?插件更新是怎么回事?我可以为每个系统设置环境变量,这样插件更新就可以在开发机器上完成了吗?
我不确定这是否可以工作,因为插件或插件更新创建了许多新的数据库更改,我认为我需要一个工具,可以显示所有的更改,如git的Sourcetree。
有谁对wordpress和这种开发过程有专业知识,可以和我分享他的经验吗?
或者你认为这个过程不适用于wordpress?如果这是真的,那将是非常糟糕的,因为我需要一个这样的过程。
非常感谢!
发布于 2018-02-21 00:47:51
我不太了解Wordpress,但您描述的过程绝对是可能的(例如,我在Drupal和Adobe Experience Manager上实现了类似的解决方案)。
然而..。
这很难。
在CMS项目中,更改/新功能可以包括:
计算出哪个版本应该得到真正困难的东西。您希望开发人员提交更改,并将该更改复制到带有测试内容的QA上-但一旦QA签署了该更改,您可能不希望将该测试内容推广到生产环境中。配置更改可能会在系统之间流动,但每个环境具有不同的值。
为了管理数据库更改,我发现了一个监视database changes的插件;我不知道它有多脚本化。
我过去在类似的情况下所做的是编写一个脚本,为每个更改创建数据库定义-这样开发人员就可以运行该脚本,并将其作为代码更改的一部分提交。不过,它需要很多规则--您只能通过使用脚本来修改数据库结构。
发布于 2018-02-28 04:38:06
正确的答案是肯定的,你可以做到。我非常熟悉WordPress,Bit-bucket,GIT,SVN,Linux,Ubuntu。我已经建立了一个与你描述和日常使用的系统非常相似的系统。
所说的问题是CMS可能会变得棘手。这是真的,但您需要使用正确的工具进行正确的升级。因此,WordPress已经内置了版本控制和修订。数据库根本不需要参与
首先。数据库不需要更新,除非你在更新插件。但对于严格的开发,不需要DB推送。因此,让您的开发人员将文件检入和检出Bit-bucket。当首席开发人员批准更改时,让他迁移/推送到您的存储库中的主分支。在bit-bucket内部有一个叫做GIT钩子的工具。您可以在每次推送到生产分支时触发服务器上的php文件。PHP文件所做的只是触发linux命令GIT PULL,它将用生产分支上的更新服务器上的所有代码。GIT PULL还将删除任何文件,如果文件被删除等。在服务器上,您将有一个“检出”的GIT存储库副本,在linux上,第一个克隆后的凭据将被存储。只需让PHP文件触发一个执行GIT拉取的BASH脚本即可。好了。
无论你有多少开发人员,总需要有一双眼睛来审查代码更改并将其合并到生产环境中。也就是说,这就是首席开发人员发挥作用的地方。
仅供参考。你的wordpress实例中唯一需要在bitbucket中的目录是主题目录和插件目录。你不需要同步整个可湿性粉剂安装,这是相当大的。
在构建自定义插件的情况下,同样,它只是存储在插件目录中的代码。如果您的自定义插件是正确构建的,并且需要使用数据库,那么当它们被激活时,它们将立即构建所需的WP DB。同样,正确构建的插件也会在卸载时删除它自己的定制表。
您需要同步下面的2个目录。
插件文件夹位于:wp-//
wp-content/themes/SELECTED_THEME为主题文件夹
任何额外的问题,只要问,我就在这里。
发布于 2018-02-27 11:23:03
根据我的经验,最好让每个开发人员都有自己的分支,并将开发服务器设置为一个专门用于质量控制的主分支。您可以查看一些文档,了解如何设置https://plixxer.com/docs/server-management/website-quality-control/
基本上,您希望拥有一台实时服务器和一台开发服务器。实时服务器应该只从repo中拉出,并且开发人员和程序员可以从REPO中拉出或推送。我的团队将开发服务器视为一个质量检查站。如果当前的活动代码不符合我们的标准,则整个开发回滚到主分支上的活动代码。当主服务器中的代码符合我们的标准时,我们将其从主服务器分支拉到实时服务器上。每个开发人员都应该有自己的分支,以便在其本地服务器上进行测试。如果你需要一些关于使用GIT设置本地环境的帮助,请告诉我。
https://stackoverflow.com/questions/48890019
复制相似问题