我今天想学习一下Jenkins的CICD实操,我想做到一个场景,就是两个github上面的项目,项目A和项目B,项目A就是假设为一个项目的代码,项目B是自动化代码脚本,我想实现一个效果,每次项目A上面的代码发生变动时,自动触发项目B的自动化脚本执行。
中间遇到的问题:
1 . GitHub端-setting-developer-settings,配置一个Personal access tokens
2 . GitHub端-setting-ssh and GPG keys,new 一个 ssh key,用作到时候连接代码库,拉取到Jenkins工作空间等操作
任务里面的配置项问题,填写了git地址后,一直报错连接不上,后面倒腾了一次那个凭据,总算是正常了



这几个图是单任务的一个配置
⭐GitHub经常访问不上的问题,Jenkins执行任务的时候,控制台输出,连接不上GitHub?
⭐Jenkinsfie这个文件的使用
Jenkinsfile 是用 Groovy 语言编写的文本文件,用于以代码形式定义 Jenkins 持续集成和持续交付(CI/CD)流程,支持版本控制、灵活配置及复用,能提升 CI/CD 管理效率与扩展性。
项目代码中一般没有这个文件,需要我们自己新增上去,一开始我直接文本新增改后缀为.groovy,导致最后Jenkins在执行的时候报错找不到Jenkinsfile,原因是目录下面只有Jenkinsfile.groovy
所以不要乱加后缀,改过来后再去执行,就执行成功

这里还有一个问题,就是执行起来会报错提示“cmd不是内部或外部命令”,原因是因为Jenkins无法找到系统的cmd命令,可能是Jenkins的环境变量配置不正确导致
所以还要在Jenkins-manage Jenkins-System下面配置全局环境变量,还要加上对应的python环境啥的,不然接着执行还会报错找不到对应的库pytest,requests等等,我这里填了一个项目的虚拟环境,也只是为了尽快看到执行效果罢了,实际运行还是要填规范全局生效的路径

⭐最终效果,当projectA执行后,会顺带触发执行projectB


图上代码step里面就是指定了关键触发环节

如果项目A的代码发生更新,例如有人提交了代码,这在工作中很常见,一个项目各个开发提交了代码后,自动触发自动化脚本的场景(例如可以自动触发跑冒烟用例)
⭐GitHub上面配置webhook
因为我的Jenkins是本地部署的,所以一开始我直接查了下本机的ipv4地址丢上去,新增了一个webhook,但是发现一直是连接不上的状态
所以要想实现GitHub提交了代码后自动触发Jenkins任务,还需要做个内网穿透操作。
下载工具ngrok,使用免费版就可以达成效果了,因为Jenkins是部署在本地的8090端口
所以下载后直接命令行,执行:ngrok http 8090,就可以了


Jenkins里面项目A要把这个配置勾上,然后就可以去看效果

直接在项目A的代码上面,随意进行一些commit---push,然后就会自动触发执行Jenkins的任务啦~~~~~踩坑完毕


【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2019-02-17 接口自动化学习--mock