Jenkins按分支部署

时间:2015-06-17 03:45:59

标签: git jenkins

我有一个PHP应用程序,每次推送时都会使用Jenkins和GitHub自动部署。

我正在分支机构工作,所以如果我将任何更改推送到branch.test.com并立即查看更改。

我正在尝试在Jenkins中使用“Execute Shell”,因此在构建之后,它会找出更新哪个分支(“master”或“develop”)并将其复制到www文件夹以反映更改。

我是否在正确的轨道上?

3 个答案:

答案 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)

我想您可以选择“多分支管道” 并按分支名称进行过滤。如下图所示。就我而言,最有效的方法是选择一个普通的git存储库(相对于Github,Gitlab等)。

enter image description here