Github Webhook触发Jenkins自动构建

1.功能说明

Github Webhook可以触发Jenkins自动构建,通过配置Github Webhook,每次代码变更之后(例如push操作),Webhook会自动通知Jenkins服务器,Jenkins会自动执行预定义的构建任务(如Jenkins pipeline),这样的话开发者就不需要手动操作Jenkins了,Webhooks直接触发构建,提高开发流程的效率和自动化

2.前提条件

  1. Jenkins已安装并完成初始化操作
  2. 安装了所需的Jenkins插件:GitHub plugin(初始化时选择安装推荐插件会自动安装该插件)
  3. Jenkins的pipeline相关配置:触发器构建中勾选:GitHub hook trigger for GITScm polling

3.配置过程

3.1 关闭CSRF防护

Jenkins 默认启用了 CSRF 保护,可能导致 Webhook 请求被拒绝,导致Webhook配置报错:

plain 复制代码
Last delivery was not successful. Invalid HTTP Response: 403

即GitHub没有适当的访问权限

可以通过添加适当的JVM参数来关闭该权限:

plain 复制代码
-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true

可以在/usr/bin/jenkins(启动脚本)中添加该参数,也可以手动启动Jenkins:

powershell 复制代码
java -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true -jar /usr/share/java/jenkins.war

启动之后可以在Security中看到CSRF已经关闭:

注意:不要尝试从config.xml中修改参数来关闭CSRF,启动Jenkins会默认修复你修改的配置

3.2 Github Webhook配置

进入repository -> settings,找到Webhook,开始进行配置,有关如何配置在GitHub Plugin的文档中有详细说明:https://plugins.jenkins.io/github/

  1. 填写Payload URL
  2. 修改Content typejson格式
  3. 勾选push触发即可
  4. 其余保持默认

点击update webhook,如下图所示则配置成功:

相关推荐
一念一花一世界4 分钟前
Arbess从初级到进阶(2) - 使用Arbess+GitLab实现Vue.js项目自动化部署
vue.js·ci/cd·gitlab·arbess
大飞哥~BigFei1 小时前
RabbitMq消费延迟衰减重试实现思路
java·分布式·rabbitmq
caijingshiye1 小时前
九科信息企业自动化智能体:打破知行割裂,让AI真正动手干活
运维·人工智能·自动化
有趣的野鸭1 小时前
JAVA课程十一次实验课程主要知识点示例
java·前端·数据库
q***07143 小时前
Spring Boot 多数据源解决方案:dynamic-datasource-spring-boot-starter 的奥秘(上)
java·spring boot·后端
HIT_Weston3 小时前
26、【Ubuntu】【远程开发】内网穿透:密钥算法介绍(二)
linux·运维·ubuntu
q***49863 小时前
Spring Boot 3.4 正式发布,结构化日志!
java·spring boot·后端
大地的一角5 小时前
(Linux)ELF格式与库的链接原理
linux·运维·服务器
z202305085 小时前
Linux之中断子系统-内核中断注册源码分析(4)
linux·运维·服务器
沐浴露z6 小时前
【微服务】基本概念介绍
java·微服务