使用github webhooks参数化的jenkins构建

时间:2019-02-11 11:04:41

标签: jenkins git-webhooks

我在jenkins作业配置中使用带有“此项目已参数化”选项的选择参数,在dev / test / prod环境中配置了我的jenkins作业(自由式)。

我在github上将webhook设置为https://myjenkins/github-webhook/。当我对github repo进行更改时,它总是使用“ dev”环境选项触发jenkins中的构建。如何根据我的要求选择其他任何环境?

我用Google搜索,但没有找到正确的答案。有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

简短回答

使用一些分支策略,然后在工作中执行以下操作:

IF BRANCH == DEVELOPMENT
  deploy to dev
IF BRANCH endsWith SNAPSHOT
  deploy to dev
IF BRANCH == MASTER
  deploy to production
ETC ...

详细答案

当开发人员对Github,Bitbucket或Gitlab执行git push时,这些平台会将Json发送给Json到您的持续集成服务器(jenkis,travis等),其中包含许多与push事件相关的信息。最重要的是:

  • 存储库名称
  • 目标分支名称:接收git push的分支
  • 提交消息
  • 提交作者

webhook

然后,在您的持续集成服务器中,您必须解析此Json以获得重要的值。在jenkis中,有几个插件,例如:通用webhook,easy webhook plugin,github插件等

提取值之后,您可以使用分支名称,提交消息,提交作者等来应用简单或复杂的验证。例如:

  • 仅master分支可以部署到生产环境
  • 只有名称以“快照”结尾的分支可以部署到开发环境:fix-issue-snapshot,feature-abc-snapshot等
  • 如果提交消息中包含“ WIP”,则表示它仍在进行中或正在开发中,则不会进行部署。
  • 仅部署团队领导
  • 如果build,单元测试和其他验证在 feature-100- development 分支的源代码中通过,分支称为新的 feature-100-将创建 release ,然后将该分支部署到测试环境。如果Q&A团队未检测到任何功能问题,则此* release分支适合在生产中部署。
  • 从简单到复杂的任何其他自动化流程。

您的想象力是您唯一的限制。

有用的链接: