Jenkins Gitee 实现持续集成CI/CD工具【免费、推荐】
文章目录
- 1. Jenkins & Gitee持续集成流程
- 2. Jenkins安装Gitee插件
- 3. 插件配置
- 4. 安装NodeJS
- 5. 新建构建任务
- 5.1 General
- 5.2 源码管理
- 5.3 触发器配置
- 5.4 构建环境
- 5.5 构建脚本
- 6. Vue项目部署
前面介绍了一些CI/CD 持续集成的工具,如circle ci
、travis ci
、gitee go
等,详情可以看下系列文章:传送门。
但是上面一些工具有的是只支持Github,有的需要收费,有的免费的只支持公开项目不支持私有项目,而且Github在国内访问又比较慢,所以这次介绍下Gitee + Jenkins
来实现可私有化且免费的持续集成方案。
1. Jenkins & Gitee持续集成流程
- 在本地编辑器编辑代码,提交到
gitee
push
操作触发jenkins
自动部署(jenkins
安装在docker
中)jenkins
开始构建、打包、最后部署到云服务器
2. Jenkins安装Gitee插件
Jenkins
安装Gitee
插件:
安装完记得重启Jenkins
。
3. 插件配置
前往 Jenkins -> 系统管理 -> 系统配置 -> Gitee配置 -> Gitee 链接
在
链接名
中输入Gitee
或者你想要的名字Gitee 域名 URL
中输入Gitee完整 URL地址:https://gitee.com
(Gitee私有化客户输入部署的域名)证书令牌
中如还未配置Gitee APIV5
私人令牌,点击添加 -> Jenkins
Domain
选择全局凭据
;类型
选择Gitee API 令牌
;范围
选择你需要的范围;Gitee APIV5 私人令牌
输入你的Gitee私人令牌,点击获取ID
,描述
中输入你想要的 ID 和描述即可。
添加完成后,选择这个证书令牌:
点击【测试连接】,若出现成功
不报错则表示配置成功。
4. 安装NodeJS
因为Vue
项目是基于node
来打包构建的,所以要先安装nodejs
插件:
在系统管理 > 系统配置 > 全局工具配置 NodeJS安装:
建议Node版本不要太高,选择LTS 最新的版本即可。
5. 新建构建任务
前往 Jenkins -> 新建任务 , 输入任务名称 Gitee Test
,选择构建一个自由风格的软件项目
保存即可创建构建项目。
5.1 General
任务全局配置中需要选择前一步中的Gitee链接。前往某个任务(如’Gitee Test’)的 Configure -> General,Gitee 链接
中选择前面所配置的Gitee链接,如图:
5.2 源码管理
- 选择
Git
选项,输入你的仓库地址 - 凭据
Credentials
中请输入 git 仓库https
地址对应的用户名密码凭据
,或者ssh
对应的ssh key
凭据,注意Gitee API Token
凭据不可用于源码管理的凭据,只用于gitee
插件的 API 调用凭据(这里再添加一个用户名密码的凭据就行啦)。 - 点击【高级】 Advanced 按钮,
Name
字段中输入origin
,Refspec
字段输入+refs/heads/*:refs/remotes/origin/* +refs/pull/*/MERGE:refs/pull/*/MERGE
,注意新版jenkins
不再接受多条同时包含*
通配符的refs描述,如只对push触发可写前半部分,如只对PR触发可只写后半段。(这里我就先写前半部分) - 指定分支:master
5.3 触发器配置
这里我是配置push
代码立即触发构建任务:
- 勾选
Gitee webhook 触发构建
,后面有个地址这个后面需要配置到Gitee,Gitee触发构建策略勾选推送代码
,其他先默认就行,后面有个Gitee WebHook密码
栏位需要配置到Gitee,点击生成就会生成一个密码; - 打开Gitee这个项目的管理,左侧有个
WebHooks
,点击【添加webHook】:
将上一步Jenkins
生成的URL
和密码
填进去,点击【添加】:
5.4 构建环境
修改构建任务的构建环境,勾选Provide Node & npm bin/ folder to PATH
,默认会选择刚才选择的nodeJS
:
5.5 构建脚本
选择【执行shell】:
先随便写一个shell
脚本试试水吧:
保存后,我们提交一次看看,很快就构建成功了:
6. Vue项目部署
vue项目通过node
构建后,需要将构建后的dist
文件夹的内容部署到云服务器,因为jenkins
是docker
容器创建的,容器内部不能直接移动文件,因为没有挂载,所以这里可以使用SSH
登录的方式登录到远程主机再来使用docker
命令来移动容器的文件到宿主机的nginx
服务器。先来安装下Publish over SSH
,进入插件管理:
安装完成后,在系统管理->系统配置 会多出一个Publish over SSH
。
先在宿主机生成SSH key(若已经有了SSH Key可以直接使用):
ssh-keygen -t rsa -C "xxxx@qq.com"
# 将公钥放到authorized_keys,否则SSH Server配置会不成功
cat id_rsa.pub >> authorized_keys
在系统管理 > 系统配置 中配置 Publish over SSH
, 配置Jenkins SSH Key:
点击 Test Configuration按钮,左侧显示 Success 即表示SSH可以连接成功:
Jenkins 会通过 Git 下载项目,会下载到/var/jenkins_home/workspace/
目录,Jenkins 镜像通过 ssh 登陆到宿主机时,可以直接访问到镜像中的该目录,所以能在宿主机执行该命令。
其他步骤同上,构建步骤修改脚本:
先添加一个Transfer Set 删除部署目录的文件:
再加一个 Transfer Set 传送文件到部署目录:
部署效果:
注意点:
1.若
jenkins
不是用docker
容器安装的,可以直接用cp命令复制将jenkins
打包的文件复制到nginx
对应的目录,不用SSH 来传输文件。2.
node
版本记得改成和本地相同的,曾经在安装vue-element-admin
时遇到install
失败的问题就是node版本太高了。3.
vue-element-admin
我去除了tui-editor
,因为从git下载总是报错(可以通过加hosts来解决)
Jenkins Gitee 实现持续集成CI/CD工具【免费、推荐】相关推荐
- 持续集成 ci/cd_CI / CD即服务:在云中进行持续集成和交付的10种工具
持续集成 ci/cd 云和持续集成 (CI)是天生的匹配. 尽管云使我们摆脱了安装和维护物理服务器的痛苦,但持续集成可以自动消除构建,测试和部署代码的痛苦. 如果两家公司都希望把工作从开发团队的肩膀上 ...
- 持续集成(CI)工具-----jenkins
1.jenkins 1.1. 什么是jenkins Jenkins是一个开源的.提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续.自动的构建/测试软件项 ...
- 持续集成与持续部署(三)——实现持续集成的效率工具对比之Jenkins、Travis CI、Circle CI和其他持续集成工具
持续集成与持续部署(三)--实现持续集成的效率工具对比之Jenkins.Travis CI.Circle CI和其他持续集成工具 效率工具对比 点击查看效率工具 1. Jenkins Jenkins, ...
- 推荐10个CI/CD工具,用于云平台集成交付
虽然云平台的到来让开发者免于安装和维护物理服务器,但测试和部署代码过程依旧需要人为完成,持续集成可以自动消除构建.测试和部署代码的大部分痛苦.如果希望最大限度提高效率,持续集成和交付工具是最好的选择. ...
- 持续集成、持续交付(CI/CD)开篇,先来唠唠嗑
前言 现在稍微有点规模的系统,很多都是采用分布式/微服务架构,将一个大系统拆分为很多个功能模块进行开发.测试.发布.管理等,如果全部流程都采用人工的形式进行的话,效率肯定是超级不高效滴.而且现在很多项 ...
- Jenkins和GitLab CI/CD:CI/CD工具之战
持续集成(CI)和持续交付(CD)在过去十年左右时间里取得了长足的进步.DevOps测试的兴起引发了针对CI/CD工具的强烈需求.现有的解决方案一直在与时俱进,无数的新产品或新版本正在进入质量检查领域 ...
- centos7下Gitlab+Jenkins部署持续集成CI环境
1.基本环境 主机:win10,IP:192.168.0.111:部署机器centos7,IP:192.168.0.65: 内存推荐到8G,实测需要6G以上,以免出现内存不够用而报错. 2.安装git ...
- 基于Docker容器的,Jenkins、GitLab构建持续集成CI
** 开发者将代码提交(push)到GitLab后,GitLab通过Hook通知jenkins,jenkins自动从GitLab中获取项目最新的源码进行集成和发布. 基于Docker,创建一个私有Gi ...
- ci持续集成工程师前景_不要忽视持续集成(CI)/持续交付(CD)的13个优势
原标题:不要忽视持续集成(CI)/持续交付(CD)的13个优势 持续集成(CI)/持续交付(CD)是现代软件开发周期的基础,人们需要了解持续集成(CI)/持续交付(CD)和其管道实施的所有好处. 在传 ...
最新文章
- 导航,头部,CSS基础
- word vba高效排版范例应用_Word 排版指北丨高效律师
- opnet中的例子模型
- group by很多字段是不是会很慢_面试官:数据量很大,分页查询很慢,有什么优化方案?...
- JS性能优化之文档碎片-document.createDocumentFragment
- Spring Boot(3)---Spring Boot入门:系统要求
- 【java】Java实现单向链表反转
- 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第4节 等待唤醒机制_5_线程间通信...
- spring cloud SnakeYAML RCE
- dbutils mysql_mysql dbutils
- ios10 申请拍照权限_iOS 10 获取相册相机权限
- 各省市大学 全国各个省市重点民办本专科大学
- Java 标准 I/O 流编程一览笔录
- php doctrine 使用,php – 在Symfony中使用Doctrine创建表
- 信息安全技术 应用软件安全编程指南
- 被迫毕业,面试 30 家公司,终于上岸了!
- 《图说VR入门》——googleVR 他山之玉
- python处理颜色rgb_python – 根据RGB值更改图像的颜色
- 小学计算机画线反思,会画画的线活动反思
- XMOS笔记1--LED的控制