由于项目使用Git进行源代码管理,并且每次发布的时候并不是全布打包进行发布,而是只发布与上次发布版本之后所修改的文件。考虑到每次发布的时候会有新增的文件、修改的文件以及删除的文件,在网上看了不少资料,都是通过用git diff --stat base_branch_name current_branch_name --name-only这样的方式去做的,本来也想用这种方式去做,但是发现这种方式只能列出增加跟修改的文件,对于删除的文件就需要自己额外去写个脚本去列出哪些文件被删除了,然后在发布的时候用脚本支删除这些文件。
由于Jenkins对Java有增量构建的支持,所以想看一下能否用于PHP,在调查的过程中发现Jenkins在/home/your_user_name/.jenkins/jobs/job_name/builds/job_id这个目录下会生成一个changelog.xml的文件,虽然这个文件的扩展名是.xml但是文件内容并不是xml格式的,而是文本的。
所以想利用同样的方式为PHP项目构建也生成一个同样的changelog.xml文件, 用于生成当前分支/版本与production的分支/版本的文件差异的changelog,经过用如下方法的尝试成功将dev_0.1这个分支与master分支的文件差异生成到了changelog里,如下方式只是一个参考,使用时需要替换成自己的分支信息,本文只列出Jenkins Source Code Management的配置部分: