【发布时间】:2020-05-06 03:26:27
【问题描述】:
我是 TeamCity 的新手,并且有一个用例,其中存储库中有多个更改,但我只想通过团队城市作业更新服务器上的某个文件夹。例如,我在项目内的 config 文件夹中进行了一些更改,我只想更新该特定文件夹并忽略其余部分。
可以这样做吗?如果是这样,正确的做法是什么?
PS:我知道配置应该在环境基础上做更多,但我无权更改现有架构。
【问题讨论】:
标签: continuous-integration teamcity
我是 TeamCity 的新手,并且有一个用例,其中存储库中有多个更改,但我只想通过团队城市作业更新服务器上的某个文件夹。例如,我在项目内的 config 文件夹中进行了一些更改,我只想更新该特定文件夹并忽略其余部分。
可以这样做吗?如果是这样,正确的做法是什么?
PS:我知道配置应该在环境基础上做更多,但我无权更改现有架构。
【问题讨论】:
标签: continuous-integration teamcity
所以我刚刚找到了一个解决方案,方法是将 tar 从 git 提取到另一个文件夹,从现有文件夹中删除我需要更改的当前文件夹,然后从新提取的 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/”
ssh\ -o StrictHostKeyChecking=否\ -o UserKnownHostsFile=/dev/null \ 服务器 "mkdir ~/application_new/ && tar -C ~/application_new/ -xz -f-" /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/"
ssh\ -o StrictHostKeyChecking=否\ -o UserKnownHostsFile=/dev/null \ 服务器“pm2删除应用程序”
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"
【讨论】: