小团队的开发工作流程

时间:2016-04-12 15:08:33

标签: php mercurial workflow project

所以,我在一家小型活动/娱乐公司工作,最近接管了开发团队的责任(PHP应用程序,大部分时间)。当前的工作流程看起来像这样:

  • 对于每个项目,都有一个开发和生产服务器。没有本地开发环境,这意味着每个开发人员都具有SSH访问权限并直接在开发服务器上进行更改。
  • 没有源代码管理或任何内容。
  • 大部分时间,团队的每个成员都自己负责一个项目。处理同一项目的多个开发人员很少见。
  • 更新生产服务器意味着使用SFTP将源从开发人员转移到生产服务器。

我觉得这很可怕,所以我提出了这个想法:

  • 将有一个托管所有可用项目的中央开发服务器,此服务器将使用Mercurial进行源代码管理。
  • 开发人员必须设置本地开发环境并为每个项目使用本地存储库。可以从开发服务器上的中央存储库中提取/推送更改。
  • 如果必须推出新版本的项目,开发人员可以将存储库克隆到生产服务器。

这种工作流程有什么问题吗?我已经将Mercurial用于我自己的项目,但我之前从未在团队中使用它,而且我也是所有团队管理人员的新手。我很感激一些建议。

谢谢, 克里斯

2 个答案:

答案 0 :(得分:1)

这是我工作了几年的工作流程......

多个生产服务器, 1个项目(测试)服务器, Git(Bitbucket), 詹金斯, JIRA(问题跟踪), HipChat(团队聊天) 1 x Master Git Branch, 1 x Project Git Branch

  • 新票(在JRIA上)
  • 从主分支机构签出新的本地分支
  • 做好工作
  • 提交分支以获取拉取请求(在团队聊天中发布拉取请求的链接,以便其他开发人员知道PR是否正确)&进行必要的更改
  • 获得批准后,将我的本地分支合并到项目分支
  • 使用Jenkins克隆项目git repo,运行tests&部署到项目服务器
  • Application Tester测试所有内容
  • 票证已通过
  • 将我的本地分支合并到主分支并推送
  • 再次,使用Jenkins克隆主分支并运行测试
  • 手动要求Jenkins将主分支部署到生产服务器

我上面提到了Jenkins,对于想要实现新进程的开发团队来说,这可能会有点过头了,现在我建议一些更基本的东西,比如FTPloy,这里有一个非常好的指南来设置它: https://daveismyname.com/website-deployment-with-bitbucket-and-ftploy-bp

答案 1 :(得分:0)

让您的开发人员在本地工作很有意义。 PHP的最大优点是反馈周期短,如果他们必须将可能破坏的东西推送到共享开发盒,那么这会打破短反馈周期。您可以使用像Vagrant这样的东西来为开发机器上的开发人员更轻松地设置环境。

就其余部分而言:我会将您的开发/测试服务器从中央存储库中分离出来。原因是当您处理项目时,您可能会开始使用不同版本的分支。很可能会有一个" Stable" /当前发布的项目分支和一个"功能"分支(你正在研究的新东西)。直接发布到开发服务器对于即使像我建议的基本分支工作流程也没有意义。

我在这里看到的另一个重大问题是所有开发人员都可以向生产服务器发布版本。通常,即使在较小的组织中,在释放到生产服务器之前,还有指定的人和指定的标准。我建议你这样做。在发布之前,你们应该总是标记你要发布的版本。这应该是您的发布工作流程的一部分。

您未提及的另一件事是问题跟踪。就我而言,JIRA是问题跟踪软件的黄金标准。我们喜欢使用JIRA和Fisheye来管理我们的代码并协调具有特定问题的提交。