我不知道这是否适合这个问题,但是当涉及到咕噜声和部署时,我正在努力应对“最佳实践”。我的团队使用bitbucket托管repos和rackspace作为服务器。
我使用grunt将我的网站构建为静态文件(将ejs / less编译为静态html / css)。我有一个带有观察任务和咕噜咕噜咕噜声的咕噜咕噜声,它可以完成所有优化/缩小等工作。
目前部署过程是:
1)grunt prod
2)git commit / git push
3)在bitbucket中提交拉取请求,将代码合并到主
中4)ssh进入服务器和git pull。
这确保了我在服务器上拥有的任何内容都是git提交并且已经过审核。我遇到的一个问题是,有时候我会忘记在我提交之前运行grunt prod,然后最终得到一个未经优化的网站。
我已经研究过使用ssh deploy方法,基本上在运行grunt prod之后将文件通过FTP。这将消除必须ssh进入服务器并知道命令的步骤。我担心这种方法可能最终与git不同步,并避免代码审查/拉取请求的步骤。
我认为我正处于正确行事的风口浪尖,但我觉得我必须错过一些东西!
有什么建议吗?感谢
答案 0 :(得分:0)
关于这个
[能够]消除必须ssh进入服务器并知道命令的步骤
比特桶支持POST提交挂钩,更多信息在这里:
基本上发生的事情是当你提交bitbucket repo时,bitbucket将向你选择的URL发出HTTP请求(包含有关你的提交信息的有效负载)。
你有一个脚本,例如PHP或您使用的任何服务器端lang在命中URL时触发,然后运行您所需的git pull
或任何命令。
这是一个关于这个过程的深入指南 http://jonathannicol.com/blog/2013/11/19/automated-git-deployments-from-bitbucket/
通过
FTP文件
这可能非常困难和缓慢,即如何跟踪哪些文件发生了变化?你将如何处理删除本地项目文件夹中的文件,然后用这些删除更新遥控器?
为此我会使用 rsync 这是一个出色的同步工具。
我知道这不是一个完整的解决方案,并没有解决忘记运行grunt prod
的问题,但希望它对您有所帮助。