使用Git进行Grunt部署

时间:2015-02-06 18:16:51

标签: git deployment gruntjs web-deployment

我不知道这是否适合这个问题,但是当涉及到咕噜声和部署时,我正在努力应对“最佳实践”。我的团队使用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不同步,并避免代码审查/拉取请求的步骤。

我认为我正处于正确行事的风口浪尖,但我觉得我必须错过一些东西!

有什么建议吗?感谢

1 个答案:

答案 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的问题,但希望它对您有所帮助。