当前位置: 首页 > ai >正文

Jenkins里构建一个简单流水线

前情提要:传送门,我在虚拟机里装了一个Ubuntu,然后在docker里装了一个Jenkins及GitLab!
点击这里下载或fork一个简单的Java项目用于学习Jenkins!
目标:修改代码后,上传到git,在在Jenkins流水线里完成【自动拉取代码】–【打包】–【运行

1.安装Docker插件

由于我的虚拟机上没有安装Maven,又不想单独安装一份,这里需要在Jenkins里使用Docker的功能,需要提前下载Docker插件,而我Jenkins本身又是在Docker里,因此在Jenkins容器启动时就需要挂载 Docker 套接字等。也可以加上“-u root”解决一些权限问题。

-u root
-v /var/run/docker.sock:/var/run/docker.sock
-v /usr/bin/docker:/usr/bin/docker

在这里插入图片描述

2.配置全局git凭据

2.1配置凭据提供者,选择账号密码方式
在这里插入图片描述
在这里插入图片描述
2.2 进入凭据管理,添加凭据
在这里插入图片描述
在这里插入图片描述
2.3 选择我们在2.1里添加的凭据提供者,账号密码方式,输入git的账号密码,添加完成以后回到凭据列表页可以看到,新增了一个凭据!
在这里插入图片描述
在这里插入图片描述

3.添加流水线

3.1 回到首页,选择【新建任务】-流水线】
在这里插入图片描述
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/67e3f925fb804a6f8a60f8f345b007ce.png

3.2 上面的配置暂时不管,拖动到最下方,选择【Pipline script from SCM】, 如果使用【Pipline script】则是在下方输入框手动写命令,目前是入门阶段,暂时使用更简单的手动配置方式!这种方式是使用项目根目录下的文件【JenkinsFile
在这里插入图片描述
3.3 SCM选择【Git】,填写仓库地址,选择之前配置好的凭据,设置分支,注意:如果使用的GitLab,并且和Jenkins在同一个Docker里,这里的Ip需要更改成Docker的IP:172.17.0.1
在这里插入图片描述

3.4点击开始构建,进入构建任务的【Console Output】可以看到构建过程,下图就是自动从仓库拉取代码在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
3.5 在项目根目录有个文件【JenkinsFile】,这个文件就是自定义构建过程,其中Maven是通过Jenkins去控制Docker安装启动的,也可以提前在Docker里安装好,如果没有提前安装,会自动下载!
在这里插入图片描述
在这里插入图片描述
3.6 maven会自动启动,然后继续下面的【构建阶段】,完成对Java项目的打包!
在这里插入图片描述
在这里插入图片描述
3.7 代码中的两个单元测试也都在测试阶段进行了验证
在这里插入图片描述
在这里插入图片描述
3.8 最后运行程序
在这里插入图片描述
在这里插入图片描述
至此,一个简单的流水线任务已经完成,接下来就是学习【JenkinsFile】语法,然后自定义流程。另外这个流水线还有个问题是每次提交了代码,需要手动点击构建,还是麻烦得很!(懒癌发作~~~~)
未完待续…

http://www.xdnf.cn/news/6017.html

相关文章:

  • Web 架构之会话保持深度解析
  • 关于 js:9. Node.js 后端相关
  • 移动网页调试工具实战:从 Chrome 到 WebDebugX 的效率演进
  • 数据结构 栈和队列
  • Pytorch的Dataloader使用详解
  • 技术中台-核心技术介绍(微服务、云原生、DevOps等)
  • 计算机视觉最不卷的方向:三维重建学习路线梳理
  • 安装npm:npm未随Node.js一起安装
  • NeurIPS Paper Checklist中文翻译
  • ubuntu20.04系统搭建k8s1.28集群-docker作为容器运行时
  • 视网膜屏幕:重新定义数字显示的革命性技术
  • Go 语言 net/http 包使用:HTTP 服务器、客户端与中间件
  • 游戏引擎学习第278天:将实体存储移入世界区块
  • RabbitMq消息阻塞,立即解决方案
  • 使用Thrust库实现异步操作与回调函数
  • spark数据清洗
  • 代码随想录训练营第二十三天| 572.另一颗树的子树 104.二叉树的最大深度 559.N叉树的最大深度 111.二叉树的最小深度
  • 编程日志5.5
  • 第8章-9 优化技巧2
  • 2025年Flutter项目管理技能要求
  • 数据库系统概论(八)SQL单表查询语言超详细讲解(附带例题表格对比带你一步步掌握)
  • 智能体制作学习笔记1——智能体
  • 【前端】:单 HTML 去除 Word 批注
  • 实战案例:采集 51job 企业招聘信息
  • [特殊字符] VMware虚拟机挂起后Docker容器MySQL无法连接的解决方案
  • Java类与对象的描述及内存原理
  • 激光打印机常见打印故障简单处理意见
  • WebPageTest 多地域测试
  • ElasticSearch深入解析(十一):分页和分批统计的三种实现
  • 【AI论文】健康的大型语言模型(LLMs)?——评估大型语言模型对英国政府公共健康信息的掌握程度