我正在计划重组我们的Subversion流程和部署,以尽量减少代码丢失和生产部署问题。我们目前的系统只是在推出之前在随机服务器上创建一个子域名进行测试,这让我很烦恼。
我想听听有关我的当前计划的建议或意见,并获得反馈或想法,以使该系统更好。
细节:
- 小型开发团队。 - 开发和暂存存在于同一台机器上。 - 生产版本存在于其他服务器上。 - 大约有30个项目与Web相关(网站、Web应用程序、Web服务)。 - 大约有30个项目是桌面应用程序、DLL、组件、批处理文件等。 - Dev子域名仅通过VPN访问。 - Web的暂存子域名可以公开访问。exe暂存仅可通过VPN访问。 - 每个项目将有一个dev和staging子域名和存储库。Dev版本是staging trunk的分支。 - 主要的开发存储库:dev.domain.com(示例中使用通用名称)。 - 主要的staging存储库:staging.domain.com(示例中使用通用名称)。
部署:
项目的开发版本是staging trunk的分支。Staging保存特定项目的存储库。然后手动复制文件到生产位置或执行部署脚本。
例如:开发人员使用从projectname.projecttype.dev.domain.com(site1.web.dev.domain.com)获得的本地副本。对本地版本进行更改,并将其合并到项目dev分支以进行测试。完成所有测试后,将分支合并到项目主干。如果项目主干通过了所有测试,则推出该项目。
Subversion存储库结构: *注意:文件结构将与域名的结构匹配。*
开发分支:始终在此服务器上检出以进行本地开发环境。
我想听听有关我的当前计划的建议或意见,并获得反馈或想法,以使该系统更好。
细节:
- 小型开发团队。 - 开发和暂存存在于同一台机器上。 - 生产版本存在于其他服务器上。 - 大约有30个项目与Web相关(网站、Web应用程序、Web服务)。 - 大约有30个项目是桌面应用程序、DLL、组件、批处理文件等。 - Dev子域名仅通过VPN访问。 - Web的暂存子域名可以公开访问。exe暂存仅可通过VPN访问。 - 每个项目将有一个dev和staging子域名和存储库。Dev版本是staging trunk的分支。 - 主要的开发存储库:dev.domain.com(示例中使用通用名称)。 - 主要的staging存储库:staging.domain.com(示例中使用通用名称)。
部署:
项目的开发版本是staging trunk的分支。Staging保存特定项目的存储库。然后手动复制文件到生产位置或执行部署脚本。
例如:开发人员使用从projectname.projecttype.dev.domain.com(site1.web.dev.domain.com)获得的本地副本。对本地版本进行更改,并将其合并到项目dev分支以进行测试。完成所有测试后,将分支合并到项目主干。如果项目主干通过了所有测试,则推出该项目。
Subversion存储库结构: *注意:文件结构将与域名的结构匹配。*
开发分支:始终在此服务器上检出以进行本地开发环境。
dev.domain.com
web.dev.domain.com
site1.web.dev.domain.com
site2.web.dev.domain.com
exe.dev.domain.com
app1.exe.dev.domain.com
app2.exe.dev.domain.com
暂存主干:从未被开发人员触碰。文件仅通过将分支合并到特定项目的主干中进行更新。 在推送到线上之前进行测试安装。应该被认为是生产可用的,但不可被客户访问。
staging.domain.com
web.staging.domain.com
site1.web.staging.domain.com
site2.web.staging.domain.com
exe.staging.domain.com
app1.exe.staging.domain.com
app2.exe.staging.domain.com
这个看起来怎么样?我有没有遗漏或者将要失去的功能?是否有更好的系统我应该使用?