【发布时间】:2015-04-06 23:24:49
【问题描述】:
我不知道这是否是问这个问题的合适地方,但是当涉及到 grunt 和部署时,我正在为“最佳实践”而苦苦挣扎。我的团队使用 bitbucket 来托管 repos 和 rackspace 作为服务器。
我使用 grunt 将我的网站构建成静态文件(将 ejs/less 编译成静态 html/css)。我有一个负责监视任务的 grunt dev 和负责所有优化/缩小等的 grunt prod。
目前的部署过程是:
1) 咕噜声
2) git commit / git push
3) 在bitbucket中提交pull request,将代码合并到master中
4) ssh 进入服务器和 git pull。
这可以确保我在服务器上的任何内容都是 git 提交并且已经过审查。我遇到的问题之一是有时我忘记在提交之前运行 grunt prod ,然后最终得到一个未优化的站点。
我已经研究过使用 ssh deploy 方法,基本上是在运行 grunt prod 后通过 FTP 传输文件。这将消除必须通过 ssh 进入服务器并知道命令的步骤。我担心这种方法最终可能会与 git 不同步并避免代码审查/拉取请求的步骤。
我认为我正处于正确做事的风口浪尖,但我觉得我一定错过了什么!
有什么建议吗?谢谢
【问题讨论】:
-
我坚信可分发文件应该不受版本控制。您是否考虑过翻转事情并仅将 source 文件提交到 Git,然后使用 Grunt 作为部署工具来检查、构建和部署您的文件?这样一来,您的整个部署管道都是自动化的,不会错过任何步骤或提交错误的文件。
-
感谢@AntP 的快速回复!我已经考虑过了,但我无法弄清楚如何正确地做到这一点。您能否详细说明您的建议?
标签: git deployment gruntjs web-deployment