我有一个PHP应用程序,每次推送时都会使用Jenkins和GitHub自动部署。
我正在分支机构工作,所以如果我将任何更改推送到branch.test.com并立即查看更改。
我正在尝试在Jenkins中使用“Execute Shell”,因此在构建之后,它会找出更新哪个分支(“master”或“develop”)并将其复制到www
文件夹以反映更改。
我是否在正确的轨道上?
答案 0 :(得分:5)
是的,你走在正确的轨道上。 Jenkins可用于持续交付(CD),并且每个分支进行构建/部署/测试过程是一种很好的做法。
我建议你为每个分支使用单独的工作。即使Jenkins Best Practices page也这样说:
使用CI工具的一个优点是在开发生命周期的早期检测问题。为您创建的每个分支设置不同的作业/项目将有助于最大限度地发挥早期检测问题的好处,作为支持并行开发工作和降低风险的一部分。
通常,项目会增长并变得拥有很多分支,在某些时候,您需要为每个分支自动创建一堆作业。以下是一些有用的文章:
答案 1 :(得分:1)
Vitalii Elenhaupt的回答很好。 我只想详细说明我在做什么。 我在挖掘詹金斯的时候找到了自己的答案。
在“Excute shell”中使用以下代码将文件部署到自己服务器中的“分支”。
echo ${GIT_BRANCH##origin/}
rm -rf /home/www/${GIT_BRANCH##origin/}/* > /dev/null
rsync -av --exclude='.git' ${WORKSPACE}/ /home/www/${GIT_BRANCH##origin/}
如果它变得更加繁忙,那么我可以为Vitalii Elenhaupt建议为每个分支创建一个单独的工作。
答案 2 :(得分:0)