如何仅部署修改/新文件GIT+;詹金斯&x2B;PHP?
我正在尝试将Jenkins CI服务器用于我的PHP应用程序。因为我们正在使用我们的Git存储库,所以我使用jenkins的Git插件从central repo获取文件 当前,当我的jenkins作业运行时,它从git repo获取文件并生成一个构建,但该构建包含所有文件 根据我目前的情况,我只希望在那个版本中有修改过的+新文件,这样我就可以只部署它们,而不是全部文件 这是可能的……还是在构建环境中是根本错误的?这并没有什么“根本错误”,但至少您的发布构建应该是“干净完整”的构建(而不是增量的) 至于“如何”做到这一点。。。你必须自己做。还没见过这样的插件。为什么?因为在大多数编译的“构建”中,源文件和相应的编译文件之间没有1对1的关系。系统如何知道哪些新文件产生了哪些新工件?(在PHP中,很明显,在其他语言中,不是这样) 您必须编写自己的构建脚本,该脚本将:如何仅部署修改/新文件GIT+;詹金斯&x2B;PHP?,php,git,deployment,jenkins,Php,Git,Deployment,Jenkins,我正在尝试将Jenkins CI服务器用于我的PHP应用程序。因为我们正在使用我们的Git存储库,所以我使用jenkins的Git插件从central repo获取文件 当前,当我的jenkins作业运行时,它从git repo获取文件并生成一个构建,但该构建包含所有文件 根据我目前的情况,我只希望在那个版本中有修改过的+新文件,这样我就可以只部署它们,而不是全部文件 这是可能的……还是在构建环境中是根本错误的?这并没有什么“根本错误”,但至少您的发布构建应该是“干净完整”的构建(而不是增量的)
- 分析控制台日志中的SCM更改,或直接查询SCM
- 建造
- 根据步骤1中的解析,仅存档/打包/压缩已更改的文件
- 部署该文件的子集
git diff --name-status `cat commit_id` HEAD |
while read status file; do
case $status in
D) echo "$file was deleted" ;; # deploy (or ignore) file deletion here
A|M) echo "$file was added or modified" ;; # deploy file modification here
esac
done
# record this commit to be archived
git describe > commit_id
在生成后操作中,将作业配置为归档文件提交id