一、简述
- 一个远程的Git代码仓库(用于管理提交的代码);
- 发布人员登录发布机子,然后从这个Git代码仓库上pull下最新的代码;
- 通过一个自动打包发布的脚本,rsync(rcp or scp ?)到一个分发服务器,然后由这个分发服务器转发给所有的服务器。
二、发布脚本浅析
在上面的这些过程中,最重要的环节莫过于这个自动打包发布的脚本了。
基本过程大概如下:
- 比较一下从git仓库pull下来的代码,和之前的代码区别,主要是比较有哪些文件改动过, 如通过一个命令:git diff commitid –name-only, commitid指代的是上次pull后的commit id,也就是之前没有pull前的版本号。
- 获取到改动的文件后,遍历每一个改动的文件,并分类。如css文件,js文件,html文件。
- 对不同的分类文件,分别做相关处理。如css文件,对应的加一个最新的版本号(一般使用的是md5),然后对应的修改所有引用到它的文件,这块也是最复杂的一部分,根据不同的网站,需要不一样的处理逻辑。
- 存储当前的版本号,如:git log –pretty -1 | awk ‘/^commit/{print $2}’。
- 将所有改动的文件进行打包,发布到分发服务器。
三、后话
———— 以上都是我个人根据自己工作方式的猜想,有可能是错的。 ————
给我你的看法吧~