基于jenkins实现手动拉取码云代码,实现半自动化部署

简介: 本文紧接上文玩转jenkins - 在自己的服务器上安装jenkins,不熟悉的可以先回顾下。咱们这次来完成使用jenkins手动拉取我在码云的项目,之前都是登录服务器,然后切换到具体目录,拉取完成后再部署,这种人肉操作太累,所以必须要使用工具来完成,让我有更多的时间来刷剧。

本文紧接上文玩转jenkins  - 在自己的服务器上安装jenkins,不熟悉的可以先回顾下。

咱们这次来完成使用jenkins手动拉取我在码云的项目,之前都是登录服务器,然后切换到具体目录,拉取完成后再部署,这种人肉操作太累,所以必须要使用工具来完成,让我有更多的时间来刷剧。

本文要达到的具体目标:使用jenkins完成手动部署(半自动化部署)

ps:我的服务器:CentOs8 Linux

计划了几个想要达到的目标

  • 在自己的机器上跑起来 done
  • 使用jenkins将码云上的git仓库拉到服务器 done
  • 将代码拉到服务器后,可以手动触发构建、部署 done
  • 完成自动化部署
  • 开发一个自己的插件,具体做啥还没想好
  • 待定...

安装gitee(码云)插件


jenkins默认是不支持gitee的,但只需要安装一个插件就可以搞定。这个插件gitee已提供。

具体安装步骤如下

  • 打开 Manage Jenkins -> Manage Plugins -> Available (本人jenkins还没汉化,只是觉得没必要,其实一个插件就可以搞定)

788b37f9a0be65be3339e9dfef82c0af_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

  • search 文本框内输入 Gitee

e82b279a8c988cd4bddb9f43318bd46f_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

8610628b102f9cd64017b25b3866fde8_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


插件配置


上一步安装好了插件,这里要开始对插件进行配置。

打开具体配置项:Jenkins -> Manage Jenkins -> Configure System -> Gitee Configuration -> Gitee connections

  • 链接名:在 Connection name 中输入 Gitee 或者你想要的名字,名字无所谓,只是用来显示
  • Gitee host URL 中输入码云完整 URL地址:https://gitee.com (码云私有化客户输入部署的域名),一般填https://gitee.com 即可
  • 证书令牌:Credentials右边选项点击add,选择jenkins
  1. Domain 选择 Global credentials(全局凭据)
  2. 类型(Kind)选择Gitee API 令牌(Gitee API Token)
  3. 范围(Scope) 选择你需要的范围,根据个人想要这个凭据在哪个范围可使用,我选的是全局
  4. Gitee API Token 输入你的码云私人令牌,获取地址:https://gitee.com/profile/personal_access_tokens
  5. ID和描述(ID, Descripiton) 中输入你想要的 ID 和描述即可。(随便写,只是用来显示)
  • 令牌添加完成后,选择刚自己添加的这个令牌
  • 点击页面右侧的Advanced按钮 ,可配置是否忽略 SSL 错误(适您的Jenkins环境是否支持),并可设置链接测超时时间(适您的网络环境而定)
  • 点击 Test Connection 测试链接是否成功,如果失败请检查以上 3,5,6 步骤(基本上一次过,没出现失败的情况)。

配置成功截图

0b8f25e85025c14184c36ef979c1cbe5_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

最后点击页面底部的保存,来保存我们的配置。

15cde590767b319a3303c09068a5b13e_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


新建构建任务


这里就到了具体项目的配置,配置完成后再也不需要频繁登录服务器手动部署了。

前往 Jenkins -> New Item , name 输入 'Test 码云'(项目名字自拟 ),选择 Freestyle project(自由风格) 保存即可创建构建项目。

fcb1e553ab05d76180ce2f83f6c0edad_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

  • 基本配置中,gitee 链接配置:选择我们刚刚配置好的证书名称。具体操作路径:前往某个任务(如'Test 码云')的 Configure -> General,Gitee connection 中选择前面所配置的码云联机8eafd568f23c321e3170918b0fb83147_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png
  • 源码管理配置

点击source code management tab4ebe2c3d92a16911545afd1634afca25_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

  1. 点击Git,Repository URL输入git地址,Credentials选择无即可(前提是我们已经把jenkins所在服务器的公钥配置在码云上了,该服务器可以直接使用git命令clone或pull码云的代码)
  2. 点击Advanced,Name中输入origin,Refspec输入+refs/heads/:refs/remotes/origin/ +refs/pull//MERGE:refs/pull//MERGE
  3. Branch Specifier (blank for ‘any’)输入origin/${giteeSourceBranch},我这里按照默认的配置,使用master分支

3d5845bb9186a79aca6b94306aaa73af_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

由于我还没有配置gitee ssh,所以这里使用的是http协议,然后配置下gitee的账号密码认证即可。

6079d2e4c528f5203571510c69a56658_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

fe2cbd6d73c7cfc0b5072c914e25c22b_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

到此gitee插件基本配置完成,剩下的就是当gitee代码更新到服务器后需要做的操作了,比如执行npm i,npm run build然后部署服务。当然全部的配置还没完,还有一个非常重要的操作,那就是自动部署,也就是触发器配置,这个咱们后面文章再说。

测试配置是否成功


页面拉到最后,找到build选项,添加构建步骤,选择execute shell,然后输入echo hello,测试下我们构建后的结果。

bf56799ab15086b82384b74ef08d08dd_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

a2e07f17ff3fc3b36afb073d6eeaf19b_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

构建成功截图

1bb992de06573fced04be89ec6dfd459_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

26b5599bf86362a162a462370a467faf_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

从日志中能看到,jenkins先拉取git项目代码,然后执行了我们配置好的shell脚本。

项目部署


就差一步就可以让我们的项目跑起来了,这里大家最熟悉不过了,看命令就知道。

npm install //安装依赖
npm run build  //构建打包
PORT=9001 pm2 start app.js -n testMyproject --watch -- env:production //使用pm2 启动服务,并且设置端口和文件监听,代码有变动会自动重启

d94d8da256de73f426d4e94e3683078b_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

最后


到这里我们整个配置就完成了,以后就可以通过半自动化的方式来部署项目了,虽然是半自动化,但和之前手动部署相比已经方便太多了。当然我们的终极目标是自动部署,咱们后面的文章继续撩。

目录
相关文章
|
5月前
|
Kubernetes jenkins 持续交付
Artifact Hub在Kubernetes中的应用:部署Jenkins的脚本整理
以上步骤断言清晰明确地描述了如何通过Artifact Hub 使用Helm图表来部署Kubernetes 中得Jenkis 实例,并且提供了相应得Shell 脚本作为执行指南. 这样不但能够帮助用户快速地进行操作, 同时也能够通过自定义参数来满足不同用户需求.
175 5
存储 jenkins 持续交付
761 2
|
6月前
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
768 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
7月前
|
Java jenkins 应用服务中间件
结合Jenkins与Tomcat,实施Maven项目的自动构建和部署流程。
任何项目构建和部署的自动化流程,总离不开对各个环节精细把控与密切配合。涉及到源代码管理、构建工具、持续集成服务器以及最终的运行时环境的协调。通过上述简洁实用的步骤,可以实现Maven项目从源代码到运行状态的无缝过渡,进而提升软件开发的效率与质量。
393 0
|
8月前
|
XML jenkins 机器人
JMeter+Ant+Jenkins实现接口自动化测试持续集成
本文介绍了如何使用Ant生成JMeter接口测试报告,并集成到Jenkins中实现自动化测试。内容涵盖Ant与JMeter环境配置、build.xml文件设置、测试执行及报告生成,同时包括Jenkins插件安装、项目配置和钉钉消息通知的集成,帮助实现持续测试与结果可视化。
1008 0
|
9月前
|
人工智能 缓存 搜索推荐
手把手基于ModelScope MCP协议实现AI短视频创作:零代码自动化工作流
本文介绍了基于ModelScope MCP协议的AI视频生成解决方案,涵盖核心机制解析、零代码工作流搭建、性能优化策略及全链路异常处理。通过统一上下文描述符抽象异构AI服务,实现图像生成、语音合成与视频剪辑的自动化编排。结合缓存优化与错误重试机制,大幅提升生成效率(如5分镜视频从91.7s降至22.4s)。最后展示《夏日海滩》生成案例,并探讨个性化风格迁移与商业场景集成等进阶方向,揭示零代码本质为服务、流程与资源的三层抽象。
1306 18
|
11月前
|
存储 jenkins 测试技术
Apipost自动化测试:零代码!3步搞定!
传统手动测试耗时低效且易遗漏,全球Top 10科技公司中90%已转向自动化测试。Apipost无需代码,三步实现全流程自动化测试,支持小白快速上手。功能涵盖接口测试、性能压测与数据驱动,并提供动态数据提取、CICD集成等优势,助力高效测试全场景覆盖。通过拖拽编排、一键CLI生成,无缝对接Jenkins、GitHub Actions,提升测试效率与准确性。
885 11
|
11月前
|
jenkins Java Linux
Jenkins环境的部署及任务构建
以上就是Jenkins环境的部署及任务构建的全部内容。希望可以帮助你轻松上手Jenkins,让你的CI/CD之旅更加顺畅!
706 68
|
监控 jenkins 测试技术
Ansible与Jenkins:自动化工具的对比
Ansible和Jenkins是自动化领域的两大巨头。Ansible专注于配置管理和任务自动化,采用无代理架构,使用YAML定义配置,具有幂等性和可扩展性。Jenkins则擅长持续集成和持续交付(CI/CD),支持丰富的插件生态系统,适用于自动化构建、测试和部署。两者各有优势,Ansible适合配置管理与大规模部署,Jenkins则在CI/CD方面表现出色。结合使用可创建更强大的自动化工作流,提升团队生产力和软件质量。选择工具时应根据具体需求决定。
|
运维 jenkins Java
Jenkins 自动化局域网管控软件构建与部署流程
在企业局域网管理中,Jenkins 作为自动化工具,通过配置源码管理、构建及部署步骤,实现了高效、稳定的软件开发与部署流程,显著提升局域网管控软件的开发与运维效率。
294 5

推荐镜像

更多