如何配置Jenkins从git分支自动构建并将每个构建部署到它自己的服务器,如dev,test和prod

时间:2017-08-09 16:23:15

标签: git jenkins

我是Jenkins的新手,我想配置一个可以持续构建和部署到三个不同环境的作业。 我的git repo中有三个分支(dev,test,prod)。每当某个更改推送到其中一个分支时,我希望jenkins启动该特定分支的构建并将其部署到它自己的服务器。 我知道我可以为每个分支设置一个单独的工作,但由于所有分支的构建任务都相同,我想为所有分支使用一个构建作业,并根据分支触发每个部署作业。

3 个答案:

答案 0 :(得分:1)

您想要做的事情有三个组成部分:

  • 定义要从中提取的git存储库和分支。
  • 确定您希望检查或被告知远程存储库更改的频率。
  • 你想要建立什么。

要定义git存储库和分支,您将要使用git plugin。您可能已安装它,如果不是通过http://your.jenkins/pluginManager的插件管理器页面安装。

source code management

在上图中,我定义了git存储库,并指定了我想要跟踪的分支。

其次,您需要决定检查远程存储库上的更改的频率。这是在Build Triggers中管理的。

您可以轮询遥控器,但效率非常低。

Build Trigger Configuration

相反,我建议您寻找一个接受来自您的git服务器的webhooks的插件。你可能想看的主要是

这些插件允许您在git服务器/服务上配置webhook,并在进行更改时向Jenkins主机发送消息。

最后,您需要决定要构建的内容(和位置)

您可以通过多种方式实现这一目标 - 一种方法是使用${GIT_BRANCH}环境变量传递给脚本,该脚本随后将决定部署的内容和位置。

使用Shell构建任务作为示例

Build task command

# run a script passing in the Git Branch that triggered this build
make build-the-things ${GIT_BRANCH}

您不需要使用Makefile,您可以将其传递给脚本代替。

python build-the-things.py ${GIT_BRANCH}

您在脚本中执行的操作将决定您的构建和部署步骤。

答案 1 :(得分:0)

我最近也在学习这个。检测到更改时,必须使用“git hooks”运行脚本。这是一个教程:https://gist.github.com/Nilpo/8ed5e44be00d6cf21f22 有了这个,我在推送到遥控器的任何时候都成功地更新了我的远程项目。

https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks中的“服务器端挂钩”部分对于确定调用哪些挂钩以及何时挂起非常有帮助。

答案 2 :(得分:0)

我用类似的例子做了这个,你可以尝试检查它是否正常工作。 enter image description here 然后你可以添加POLL SCM选项并包括检查你的存储库的时间,它对我有用,对特定分支所做的更改是建立的,留下另一个