如何通过Middleware从Slack触发Jenkins构建?求助实现方案
不用写新Middleware!从Slack触发Jenkins构建的简单方案
嘿,别担心要写复杂的Middleware啦——其实有几个超友好的方案,完全不用太强的编程/脚本能力就能实现从Slack触发Jenkins构建,我给你一步步拆解清楚:
方案一:用Jenkins官方Slack插件(最省心)
这是最推荐的方式,全程可视化配置,几乎不用写代码:
- 第一步:安装Slack插件
进入Jenkins后台的「Manage Jenkins」→「Plugins」,在插件市场搜索「Slack Notification」并安装,安装完成后重启Jenkins生效。 - 第二步:打通Slack和Jenkins的连接
在你的Slack workspace里创建一个新的Bot App,获取到Bot Token和Incoming Webhook URL;回到Jenkins的「Manage Jenkins」→「Configure System」,找到Slack配置区域,填入团队域名、Bot Token、Webhook URL,点击「Test Connection」确认能成功连通Slack。 - 第三步:给目标Jenkins任务配置Slack触发
打开你想触发的Jenkins任务,进入「Configure」→「Build Triggers」,勾选「Slack Build Trigger」,设置触发关键词(比如build my-project),保存配置。 - 第四步:测试触发
在Slack里@你刚才创建的Jenkins Bot,发送设置好的关键词,比如@JenkinsBot build my-project,就能看到Jenkins自动启动构建啦!
方案二:Slash命令+Jenkins远程构建API(灵活度高)
如果不想装插件,用Slack的Slash命令配合Jenkins的远程API也能搞定:
- 第一步:生成Jenkins个人API Token
点击Jenkins右上角的用户名→「Configure」→「API Token」,点击「Add new token」生成一个新令牌,把它保存好(别泄露哦)。 - 第二步:配置Slack Slash命令
在Slack里创建一个自定义Slash命令(比如/jenkins-build),把命令的「Request URL」设置为Jenkins的远程构建地址:
提示:http://<你的Jenkins地址>/job/<你的任务名>/build?token=<自定义构建令牌>&user=<你的Jenkins用户名>&api_token=<刚才生成的API Token><自定义构建令牌>需要在Jenkins任务里提前设置——打开任务的「Configure」→「Build Triggers」,勾选「Trigger builds remotely (e.g., from scripts)」,填入一个令牌(比如MY_BUILD_TOKEN),这样更安全。 - 第三步:测试命令
在Slack聊天框里输入/jenkins-build,就能直接触发对应的Jenkins构建任务了!
小提醒
- 确保Jenkins服务器和Slack之间网络互通,不然会连接失败;
- 测试的时候先选一个简单的Jenkins任务,避免复杂配置干扰排查;
- 如果遇到权限问题,检查Jenkins用户的权限是否足够启动构建,Slack Bot的权限是否包含发送请求的权限。
内容的提问来源于stack exchange,提问作者Lukong Didimus
相关产品推荐
相关产品推荐

