Team City Jobs 仅更新 Git 中的某个文件夹?

Team City Jobs to update only a certain folder from Git?

我是 TeamCity 的新手,有一个用例,其中存储库中有多个更改,但我只想通过 team city 作业更新我服务器上的某个文件夹。例如,我在项目中的配置文件夹中进行了一些更改,我只想更新该特定文件夹而忽略其余部分。

可以吗?如果是这样,正确的做法是什么?

PS : 我知道应该在环境基础上做更多的配置,但我无权更改现有架构。

所以我找到了一个解决方案,方法是将 tar 从 git 提取到另一个文件夹,从现有文件夹中删除我需要更改的当前文件夹,然后从新文件夹中复制该文件夹提取 tar。

在 teamcity

创建 tar

tar-czf/tmp/application.tar.gz.

删除文件夹

ssh \ -o StrictHostKeyChecking=否\ -o UserKnownHostsFile=/dev/null \ 服务器 "rm ~/application/server/config -R -f && rm ~/application/server/modules/sampling/assets/ -R -f && rm -R -f ~/application_new/"

复制tar并取消tar

ssh \ -o StrictHostKeyChecking=否\ -o UserKnownHostsFile=/dev/null \ 服务器 "mkdir ~/application_new/ && tar -C ~/application_new/ -xz -f-" < /tmp/application.tar.gz

运行 建造

ssh \ -o StrictHostKeyChecking=否\ -o UserKnownHostsFile=/dev/null \ 服务器 "cp -avr ~/application_new/server/config ~/application/server/ && cp -avr ~/application_new/server/modules/sampling/assets/ ~/application/server/modules/sampling/"

在 pm2 中停止进程

ssh \ -o StrictHostKeyChecking=否\ -o UserKnownHostsFile=/dev/null \ 服务器 "pm2 delete application"

设置NODE_ENV和Start Nodejs

ssh \ -o StrictHostKeyChecking=否\ -o UserKnownHostsFile=/dev/null \ 服务器 "cd application && export NODE_ENV=dev && export NODE_OPTIONS=--max_old_space_size=8192 && pm2 start process.json"