我是Jenkins的新手,我想配置一个可以持续构建和部署到三个不同环境的作业。 我的git repo中有三个分支(dev,test,prod)。每当某个更改推送到其中一个分支时,我希望jenkins启动该特定分支的构建并将其部署到它自己的服务器。 我知道我可以为每个分支设置一个单独的工作,但由于所有分支的构建任务都相同,我想为所有分支使用一个构建作业,并根据分支触发每个部署作业。
答案 0 :(得分:1)
您想要做的事情有三个组成部分:
要定义git存储库和分支,您将要使用git plugin。您可能已安装它,如果不是通过http://your.jenkins/pluginManager的插件管理器页面安装。
在上图中,我定义了git存储库,并指定了我想要跟踪的分支。
其次,您需要决定检查远程存储库上的更改的频率。这是在Build Triggers中管理的。
您可以轮询遥控器,但效率非常低。
相反,我建议您寻找一个接受来自您的git服务器的webhooks的插件。你可能想看的主要是
这些插件允许您在git服务器/服务上配置webhook,并在进行更改时向Jenkins主机发送消息。
最后,您需要决定要构建的内容(和位置)
您可以通过多种方式实现这一目标 - 一种方法是使用${GIT_BRANCH}
环境变量传递给脚本,该脚本随后将决定部署的内容和位置。
使用Shell构建任务作为示例
# 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)