Jenkins: 搭建Jenkins服务,调通Webhook链路

jenkins构建 Webhook 触发器 目的是要让gitlab上面的项目更新了版本,Jenkins上面自动去执行新版本项目地址。 阅读详情

实现 jenkins + docker 自动化发布


1 )jenkins 下载

  • 地址:https://www.jenkins.io/download/
  • 选择合适的版本,比如 mac 上 $ brew install jenkins-lts
  • 建议使用 docker 搭建,下面用 mac上整体流程演示

2 )jenkins 管理

  • 以Mac来说
  • 启动:$ brew services start jenkins-lts
  • 重启:$ brew services restart jenkins-lts
  • 更新:$ brew upgrade jenkins-lts

3 )jenkins 访问

  • 默认是: http://localhost:8080,这里可以修改端口
  • 一开始会进入到注册页面,在注册页面填写必要的信息
    • 解锁 Jenkins
      • 输入密码,在服务器(本机)的下面的文件
      • ~/.jenkins/secrets/initialAdminPassword
      • 注:这里演示的是 Mac 环境
    • 输入管理员密码,如上密码,之后,加载中
    • 自定义 Jenkins
      • 1 )安装推荐的插件 (可以按照这个推荐的选项来)
      • 2 )选择插件来安装
      • 选择后,就是加载中
    • 还有管理员用户的初始化工作

4 )可能遇到的问题

  • 如果安装过程中出现 brew 命令的升级问题,可采用如下方法解决
  • 删除 homebrew
    echo "$(brew --repo)"
    rm -rf /usr/local/Homebrew/
    
    • echo 海贼高命令输出 brew 的位置
    • rm 删除brew的位置
  • 重新安装 homebrew
    • $ /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"

5 )Jenkins 的工作流配置


5.1 全局配置

  • 系统管理 => 插件管理,安装 publish-over-ssh 插件
  • 系统管理 => 系统配置,配置环境变量、Github Server、SSH Servers
    • 1 )环境变量配置
      • Dashboard/系统管理/System
      • 在全局属性下, 键值对列表新增
        • 键: PATH
        • 值: 这里填入自己的系统变量,如在终端中输入 $ $PATH 得到的系统变量的设置,填入自己主机的环境变量
          • 或者 $ echo $PATH 得到的值
        • 配置这个PATH之后,你的npm等环境就可以使用了
        • 注意,PATH中无关的项可以删除
    • 2 )Github Server
      • 向下,找到 GitHub Server,这里主要是找github请求用的
      • 新增 GitHub Server
      • 主要是 凭据 这里,点击 添加 下面下拉出jenkins,点击
      • 这个秘钥是在 github 网站自己账户的 settings / Developer settings / Personal access tokens / Tokens (classic)
      • 把这里的tokens 添加到 新增的 Secret text 中,点击连接测试
      • 测试成功的话,表示可以调用 API 了
      • 另外,如果有多个github服务的话,添加多个
    • 3 )Publish over SSH
      • 当安装了这一个插件之后,就会出现这个选项
      • 关键在 SSH Servers 下面
        • 在 Hostname, 填写域名或ip地址
        • Remote Directory 中填写 远程的目录地址
        • 如果需要密码等鉴权,点击高级,填入服务器的一些秘钥

5.2 工作流任务

  • 创建任务

    • 在 jenkins 系统的 Dashboard 中,点击新建任务
      • 在最顶层输入自己起的任务名称
      • 选择构建一个自由风格的软件项目
      • 点击确定
    • 之后,进入配置,在 左侧的 General 中
      • 勾选 Gihub 项目
      • 项目 URL 填入 自己所在 github的地址
    • 进入 源码管理
      • 选择 git
      • 输入用于代码仓库 clone 的 ssh 的 git源
      • Credentials 下选择之前填入token
      • Branches to build 下指定分支
        • 一般分支是 refs/head/master
      • 源码库浏览器选择 自动
    • 进入 构建触发器
      • 勾选 GitHub hook trigger for GITScm polling
    • 进入 Build Steps
      • 增加构建步骤,下拉选择 执行 shell (也可以选择 Send files or execute commands over SSH)
      • 填入 echo $PATH
    • 点击保存, 之后就是进入这个任务的主页
    • 可以点击立即构建, 构建后就会在 构建历史中增加一条记录, 点击进入
      • 可以看到控制台输出的所有信息
      • 它会把项目下载到本地,把最新的变更也展示出来, 比如新的hashId, 新的message等信息
    • 基于此配置,就创建完成一个任务了
  • 配置任务

    • github 项目
    • 源码管理 (Git)
    • 勾选 GitHub hook trigger for GITScm polling
    • 构建环境,配置 Use secret text(s) or file(s)
    • 配置 Build Steps
      • 配置 Shell
      • 配置 SSH
  • WEB Hooks 具体配置

    • 在代码push的时候,触发一个钩子来执行特定的任务
    • 在代码仓库中,找到 Settings
    • 在 General 下找到 Code and automation 中 Actions 的 General 下
      • 勾选 Disable actions
      • 这个必须要 disable 下
    • 找到 Webhooks
      • add webhook 输入密码
      • 找到 Payload URL, 输入 url
        • 这里不能用 localhost:8080,会报错,因为一是限制了只能在本机实现, 远程访问肯定找不到
        • 可以把本地的端口号映射到线上域名
        • 可以使用 smee.io 这个应用
      • 找到 Secret, 这里的 secret 可以在本地项目中 ls -la
        • 里面会有一个 .git_token 的隐藏文件
        • 这个文件里的就是上面的 Secret
  • 搜索 smee.io, Start a new channel

    • 本地安装 smee
    • $ npm i -g smee-client
    • 启动域名映射
      • smee --url https://smee.io/6FxJjA0nZoOQKXY --path /github-webhook/ --port 8080
        • webhook 在安装完github插件后会自动生成一个地址,这个地址是 /github-webhook
        • 这是一个固定的用法, 当回车完成后,
        • https://smee.io/sssfss2s0s 这类地址就会映射到本地的 http://127.0.0.1:8080/github-webhook/
    • 连接成功后,就可以用这个地址了
      • 把上述 生成的 https://smee.io/sssfss2s0s 这类地址配置到 github 的 webhook 的 Payload URL 中
      • 同时,Payload URL 下面的 Content-type 中选择 application/json
      • 接着下面的 Which events would you like to trigger this webhook?
        • 选择 Just the push event.
      • 保存
  • 成功后,每次触发push, 就会在 Recent Deliveries 中添加一条 ping 的记录

  • 接下来,通过 webhook 触发的时候,触发的是通过本机构建的

  • 当在本地项目中提交并推送代码到 github 远程的时候, 可以看到 smee 终端出现了一条记录

  • 而 github 的webhook Recent Deliveries 中也出现了一条记录

  • 同时,jenkins 项目任务中也有一条新的构建任务生成

    • 1 )在 GitHub Hook Log 中 有 git push 触发的时间
    • 以及触发url的过程, 再加上后续执行所有代码的过程
    • 2 )在 修改记录 选项中,也有一条修改记录
  • 这些就是我们想要的结果, 说明这条链路已经打通了

Jenkins Webhook笔记 Jenkins 的 Webhook 机制允许外部系统(如 GitHub、GitLab 等)通过 HTTP 请求触发 Jenkins 的构建任务。Webhook 通常用于实现持续集成(CI)流程,当代码仓库发生特定事件(如代码推送、合并请求等)时,自动触发 Jenkins 构建。Webhook 是一种基于 HTTP 的回调机制,外部系统向 Jenkins 发送 POST 请求,Jenkins 接收到请求后解析内容并触发相应的构建任务。 阅读详情

相关推荐

jenkins使用webhook实现自动部署

最近有这样一个需求,git仓代码频繁提交,服务器需要同步更新,每天jenkins jobs要更新个十来次,容易打断手上正在做的事情。如果git代码提交和服务器代码更新两个动作可以联动,那会非常省事。 1、jenkins安装Webhook Trigger 插件安装完成之后会有如下效果: 2、git仓新建一个勾子。 3、jenkins job中设置勾子触发器,信息如图中所示。 4、效果如下: ...

智者之家 5922

『DevOps』如何使用 Webhook 在 Jenkins 项目中实现自动构建

📣读完这篇文章里你能收获到:全文采用图文形式讲解,Jenkins配置Webhook,实现代码推送时Jenkins自动构建

老陈聊架构 6378

利用GitLab Webhook实现Jenkins自动化构建的实战指南

本文详细介绍了如何利用GitLab Webhook实现Jenkins自动化构建的完整实战流程。从环境准备、插件安装、任务配置到Webhook设置,手把手教你打通CI/CD自动化链路,实现代码推送后自动触发构建,有效提升开发效率和代码质量。

embedding5hiker的博客 1086

Jenkins 配置 WebHooks

Jenkins 配置 webhook

小天才程序员的博客乐园 4481

Jenkins + Gitee Webhook实战:从零构建自动化部署流水线

本文详细介绍了如何使用Jenkins和Gitee Webhook构建自动化部署流水线,实现代码提交后自动触发构建和部署。通过环境准备、插件选型、Webhook配置及测试排查等实战步骤,帮助开发者提升部署效率,减少人为失误。文章还提供了进阶配置与安全加固方案,确保自动化流程既高效又安全。

weixin_29313547的博客 248

Jenkins多分支流水线Webhook触发配置与分支策略实战

持续集成(CI)是现代软件开发的核心实践,旨在通过自动化构建、测试和部署流程,快速、频繁地集成代码变更,从而尽早发现并修复问题。其核心原理在于将代码提交与后续的自动化流程无缝衔接,取代传统的手动操作。这一实践的技术价值在于显著提升开发效率、保障软件质量并实现快速反馈。在众多CI工具中,Jenkins凭借其强大的插件生态和灵活性被广泛采用。特别是在多分支项目管理场景下,结合Webhook触发机制,可以实现代码推送后自动、精准地触发对应分支的流水线,这是实现高效CI/CD的关键技术组合。本文将以Jenkins多

weixin_33851177的博客 390

Gitee Webhook+Jenkins全流程解析:从代码提交到自动构建的完整链路

本文深入解析了如何利用Gitee Webhook与Jenkins构建从代码提交到自动构建的完整自动化链路。详细介绍了Webhook触发机制、Jenkins插件配置、网络打通方案以及高级构建策略,旨在帮助技术团队搭建稳定、高效的持续集成/持续交付(CI/CD)流水线,从而提升软件交付效率与质量。

net55的博客 741

FastAPI+Jenkins+Git自动化部署实战:环境隔离与服务存活判定

FastAPI作为现代Python异步Web框架,其ASGI运行模型与传统CI/CD工具链存在天然适配挑战。理解Uvicorn进程管理、健康检查机制及Python多版本环境隔离原理,是保障服务高可用的技术前提。结合Git Webhook事件驱动、Poetry依赖锁定与语义化版本生成,可构建稳定可追溯的交付流水线。在Jenkins中实现FastAPI应用的自动化构建、结构化日志归集、Kubernetes清单生成及systemd服务化部署,不仅提升发布效率,更强化了从代码提交到生产就绪的全链路可观测性与可控性。

weixin_34248705的博客 582

CentOS部署Jenkins:结合cpolar实现Webhook自动构建与发布

Jenkins安装起来并不算难,真正麻烦的是后面的那条链路:代码提交以后,能不能自动拉取最新版本、完成前后端构建,再把新的程序部署到服务器上。如果Jenkins本身还运行在公司或家庭局域网中,又会多一个问题。GitHub、GitLab或者Gitee发送Webhook时,需要一个能够从外部网络访问的Jenkins回调地址,否则代码虽然已经Push,内网里的Jenkins却收不到触发请求。

2501_91062530的博客 1万+

Jenkins+Gogs自动化构建避坑指南:解决Webhook本地网络限制问题

本文详细介绍了Jenkins与Gogs自动化构建中Webhook本地网络限制问题的解决方案。通过修改Gogs配置文件允许访问本地网络地址,并优化Jenkins端配置,实现高效的自动构建流程,特别适合中小团队提升开发效率。

weixin_29269441的博客 393

Jenkins自动化部署实战:从零搭建个人项目的CI/CD流水线

持续集成与持续部署(CI/CD)是现代软件开发的核心实践,它通过自动化构建、测试和部署流程,显著提升开发效率和软件质量。其核心原理在于将代码变更自动集成到共享仓库,并通过一系列自动化流水线验证和发布。这一技术价值在于解放开发者从繁琐的重复劳动中,实现快速、可靠的软件交付。在应用场景上,无论是个人项目、初创团队还是企业级应用,自动化部署都能大幅降低运维成本。本文聚焦于使用Jenkins这一经典且灵活的自动化服务器,结合Docker容器化技术,详细讲解如何为个人项目搭建一套完整的CI/CD流水线,涵盖环境准备、

weixin_42638178的博客 320

【2025】全网最全最简单Jenkins搭建前后端微服务项目

本文介绍了通过Docker搭建Jenkins实现CI/CD自动化流程的方法。主要内容包括:使用docker-compose部署Jenkins和Nginx服务,配置Nginx反向代理,实现本地代码提交自动触发测试环境发布。文章详细讲解了Docker-compose.yml和nginx.conf的配置示例,并展示了最终实现的四个服务发布效果(测试服前后端和正式服前后端)。通过Jenkins流水线(Pipeline)技术,实现了微服务环境下仅更新变更服务的自动化部署方案。

weixin_52315708的博客 1402

GitLab Webhook触发Jenkins自动构建:Java项目完整配置指南

持续集成(Continuous Integration)是现代软件工程中提升交付质量与效率的核心实践。它要求每一次代码变更都能被自动捕获,并触发一套标准化的构建与验证流程。Webhook作为一种事件驱动的回调机制,能够让GitLab在代码提交后主动将变更消息通知到Jenkins,从而实现无需人工干预的自动化构建。这种联动方式不仅消除了手动触发带来的延迟和不确定性,还保证了每次提交对应的代码版本可追溯,特别适合已使用GitLab管理代码、依赖Jenkins执行复杂流水线的Java项目团队。在实际配置中,JDK

weixin_31292729的博客 116

Jenkins 实现微服务自动化部署:流水线搭建与实战指南

本文介绍如何利用Jenkins实现微服务自动化部署的全流程方案。通过Jenkins流水线(Pipeline)技术,可完成从代码提交、编译构建、镜像打包到多环境部署的自动化流程。重点包括:环境准备(Jenkins安装与插件配置)、Jenkinsfile流水线脚本编写(含参数化部署环境选择)、Docker容器化部署策略,以及针对生产环境的优化建议(如镜像版本管理、安全加固)。该方案有效解决了微服务架构下多服务部署复杂、效率低下的问题,帮助研发团队快速建立标准化交付流程。文章还提供了核心配置代码示例和常见问题解决

jingpide9527的博客 1478

从代码提交到K8s滚动更新:一次完整的GitLab Webhook触发Jenkins Pipeline实战记录

本文详细记录了如何通过GitLab Webhook触发Jenkins Pipeline实现从代码提交到K8s滚动更新的全自动化流程。通过环境准备、Pipeline核心组件开发、全链路问题诊断及高级部署策略实践,帮助团队提升CI/CD效率,实现快速部署与零停机更新。

weixin_30736301的博客 441

GitLab+Jenkins自动化构建实战:5分钟搞定Webhook配置(含常见报错解决)

本文详细介绍了如何通过GitLab和Jenkins配置Webhook实现自动化构建,包括环境准备、Webhook配置步骤及常见报错解决方案。通过5分钟快速配置,开发者可以轻松实现代码提交后的自动构建与部署,显著提升CI/CD流程效率。

weixin_30836759的博客 353

持续测试流水线设计:Jenkins+GitLab全链路集成

摘要:本文探讨Jenkins与GitLab集成实现持续测试流水线的关键技术。通过分析工具互补性,提出包含代码触发、多阶段测试(单元/集成/性能测试)和结果反馈的全链路架构。重点介绍Webhook配置、Jenkinsfile编写及测试环境容器化等实施方案,并分享增量测试、失败处理等最佳实践。该方案可显著提升测试自动化程度和反馈效率,为敏捷开发提供质量保障。

2501_94261392的博客 937

Kylin-Desktop-V10-SP1-General-Release-2303-X86_64-海光版(hygon c86)安装与配置指南

本文提供了在国产海光C86处理器平台上安装与配置Kylin Desktop V10 SP1操作系统的详细指南。内容涵盖从下载专用镜像、制作启动盘、BIOS关键设置、磁盘分区方案,到系统安装后的驱动优化、必备软件安装及常见故障排除,旨在帮助用户顺利完成hygon c86平台的系统部署与优化。

tree的博客 1385

GitLab与Jenkins集成:Webhook触发构建实战指南

持续集成(CI)是现代软件开发的核心实践,通过自动化构建、测试和部署流程显著提升交付效率。在技术实现层面,Webhook作为事件驱动架构的关键组件,能够实现不同系统间的实时通信。本文以GitLab和Jenkins的集成为例,详解如何通过Webhook机制实现代码提交自动触发构建。该方案特别适合需要保留Jenkins Pipeline历史资产又希望利用GitLab代码管理优势的团队,实测可降低23%构建耗时。内容涵盖网络拓扑规划、双端配置细节、Groovy Pipeline示例以及生产级安全加固方案,为Dev

weixin_33428613的博客 273

S32DS新建工程、编译调试下载、导入工程详细介绍

新建了一个工程之后,下面简单介绍下基本的UI界面。其中最左下角那个是界面,这个界面很重要,是图形化配置界面,然后可以根据这些配置自动生成代码。其中,左边那些配置文件,都是系统帮我们创建好了的,我们其实可以直接用就行。有PE工具的调试,以及Jlink工具的调试。我目前使用到PE工具调试可以查看寄存器值,而Jlink调试查看不了寄存器值。连接了开发板之后,点击Debug就可以吧程序下载到芯片上了,而且可以进入到调试界面。

luobeihai的博客 2万+

简谈基于FPGA的千兆以太网设计

简谈基于FPGA的千兆以太网设计 今天给大侠带来简谈基于FPGA的千兆以太网设计,话不多说,上货。 今天我们来简单的聊一聊以太网,以太网在FPGA学习中属于比较高级的内容了,有些大侠肯定会感觉以太网学习起来非常不容易。其实,我可以告诉大家,前期学习的基础打扎实了,后期的学习也没那么难。总之就是说难没那么难,说容易也不是那么容易。那么,言归正传,下面让我们一起来聊一聊以太网的学习。 说起以太网,大家可能就会想到百兆以太网、千兆以太网以及万兆以太网等等。局域以太网从10M开始发展,经历几多的变迁,发展到现

3621
上一篇: Go微服务: 基于GRPC结合Consul实现微服务调用
下一篇: Jenkins: 配置自动化发布脚本
Wang's Blog
博客等级 码龄12年 7433粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值