jenkins&gitee实现持续集成ci/cd工具免费推荐(代码片段)

优小U 优小U     2022-12-13     477

关键词:

文章目录

前面介绍了一些CI/CD 持续集成的工具,如circle citravis cigitee go等,详情可以看下系列文章:传送门

但是上面一些工具有的是只支持Github,有的需要收费,有的免费的只支持公开项目不支持私有项目,而且Github在国内访问又比较慢,所以这次介绍下Gitee + Jenkins来实现可私有化且免费的持续集成方案。

1. Jenkins & Gitee持续集成流程

  • 在本地编辑器编辑代码,提交到gitee
  • push操作触发jenkins自动部署(jenkins安装在docker中)
  • jenkins开始构建、打包、最后部署到云服务器

2. Jenkins安装Gitee插件

Jenkins安装Gitee插件:

安装完记得重启Jenkins

3. 插件配置

  1. 前往 Jenkins -> 系统管理 -> 系统配置 -> Gitee配置 -> Gitee 链接

  2. 链接名 中输入 Gitee 或者你想要的名字

  3. Gitee 域名 URL 中输入Gitee完整 URL地址: https://gitee.com (Gitee私有化客户输入部署的域名)

  4. 证书令牌 中如还未配置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 字段中输入 originRefspec 字段输入 +refs/heads/*:refs/remotes/origin/* +refs/pull/*/MERGE:refs/pull/*/MERGE
    ,注意新版jenkins不再接受多条同时包含*通配符的refs描述,如只对push触发可写前半部分,如只对PR触发可只写后半段。(这里我就先写前半部分)
  • 指定分支:master

5.3 触发器配置

这里我是配置push代码立即触发构建任务:

  1. 勾选Gitee webhook 触发构建,后面有个地址这个后面需要配置到Gitee,Gitee触发构建策略勾选推送代码,其他先默认就行,后面有个Gitee WebHook密码栏位需要配置到Gitee,点击生成就会生成一个密码;
  2. 打开Gitee这个项目的管理,左侧有个WebHooks ,点击【添加webHook】:

    将上一步Jenkins生成的URL密码填进去,点击【添加】:

5.4 构建环境

修改构建任务的构建环境,勾选Provide Node & npm bin/ folder to PATH,默认会选择刚才选择的nodeJS:

5.5 构建脚本

选择【执行shell】:

先随便写一个shell脚本试试水吧:

保存后,我们提交一次看看,很快就构建成功了:

6. Vue项目部署

vue项目通过node 构建后,需要将构建后的dist文件夹的内容部署到云服务器,因为jenkinsdocker容器创建的,容器内部不能直接移动文件,因为没有挂载,所以这里可以使用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来解决)

使用gitlab+jenkins实现持续集成(ci)环境(代码片段)

使用GitLab+Jenkins实现持续集成(CI)环境一、持续集成简介1.GitLab简介2.Jenkins简介3.GitLab和GitHub的区别4.持续集成系统的工作流程二、使用GitLab+Jenkins实现持续集成(CI)环境1.安装Gitlab1)登录Gitlab2)配... 查看详情

jenkins实现ci/cd

...ousDelivery,持续交付1、CI持续集成实现过程:安装jenkins。我们的jenkins是在docker里面起的一个镜像,当然也可以自己到官网上下载相应的安装包。push代码到码云(https://gitee.com)根据webhooks配置的url,给远程HTTPURL发送... 查看详情

(虚拟机vs容器)&(持续集成:敏捷开发&ci&jenkins&git&docker)

原文:https://blog.csdn.net/jingzhunbiancheng/article/details/80994909 容器相比虚拟机更轻量一虚拟机 二容器 一、本质上的区别:VM(VMware)在宿主机器、宿主机器操作系统的基础上创建虚拟层、虚拟化的操作系统、虚拟化的仓库,... 查看详情

ci与cd之docker上安装jenkins(代码片段)

一.CI,CD,Jenkins的介绍CI:持续集成(Continuousintegration,简称CI),在传统的软件开发环境中,有集成,但是没有持续集成这种说法,长时间的分支与主干脱离,导致分支与主干可能存在较大偏差,在集成代码的时候可能需要花费数... 查看详情

jenkins-持续集成

...现接口自动化持续集成操作,具体操作步骤如下:windows-jenkins简单安装配置:1.下载最新版本的jenkins,jenkins官网地址:http://Jenkins-ci.org/2.运行jenkins,找到jenkins.war所在目录,执行命令:java-jarjenkins.war3.jenkins启动成功后,访问jenk... 查看详情

1.gitlab和jenkins结合构建持续集成(ci)环境

...付的基础上,把部署到生产环境的过程自动化。 14.1.2jenkins和Gitlab概述 查看详情

基于jenkins持续集成ci

持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「... 查看详情

git+docker+jenkins持续集成

组成:Git作为版本控制库 Docker搭建测试环境 Jenkins作为持续集成服务Jenkins实现CI(ContinuousIntegration)到CD(ContinuousDelivery)的转换工具。期望:1、解决从开发–测试–上线等一系列环境统一及依赖问题 2、可实现不停服务发... 查看详情

git+docker+jenkins持续集成

组成:Git作为版本控制库 Docker搭建测试环境 Jenkins作为持续集成服务Jenkins实现CI(ContinuousIntegration)到CD(ContinuousDelivery)的转换工具。期望:1、解决从开发–测试–上线等一系列环境统一及依赖问题 2、可实现不停服务发... 查看详情

持续集成-基于gitee的jenkins配置(从gitee拉取代码并运行)

目标:配置jenkins,使其可以自动拉取gitee上的代码,并运行 1.全局配置jenkins首页->系统管理->全局工具配置找到git项,填写git可执行文件的本地路径  2.具体任务配置 任务配置中,General中勾选GitHub项目,项目UR... 查看详情

jenkins持续化集成(代码片段)

内容目录:jenkins概述与环境配置基于jenkins实现可持续化集成jenkinspipeline核心应用一、jenkins概述与环境配置关于可持续化集成(CI)jenkins概述下载安装jenkins基础环境配置与常用插件下载1、关于可持续化集成相信大家都知道jenkins... 查看详情

jenkins持续集成案例之-自动化部署

Jenkins是一个开源软件项目,目的就是提供了一个开放的软件平台,让我们实现软件集成变成可能,我们经常听到企业中讲CI、CD两个名词,这些都可以跟jenkins联系在一起,实现持续集成,持续部署及持续交付;在企业中,Jenkins... 查看详情

jenkins实现代码的部署&回滚

一、Jenkins介绍   Jenkins是一个独立的开源软件项目,是基于Java开发的一款CI(持续集成)&CD(持续交付)工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台。可用于各类自动化任务,比如构建、测试和... 查看详情

jenkins+github持续集成

...任务的调研,因此有了这篇文章。之前写过一篇文章浅谈Jenkins+Node.js持续集成,那真的是浅谈,Jenkins包含的东西实在太多了,作为从hudson分支出来的开源免费的版本,插件与hudson通用,有更快的迭代速度和稳定性。为 查看详情

gitlab与jenkins结合构成持续集成(ci)环境(代码片段)

Jenkins概述:  Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作。  官方网址:https://jenkins.io/  Gitlab概述:  Gitlab是一个可以实现自托管的Git项目仓库,可通过web界面进行... 查看详情

持续集成-基于gitee的jenkins配置(从gitee拉取代码并运行)

目标:配置jenkins,使其可以自动拉取gitee上的代码,并运行 1.全局配置jenkins首页->系统管理->全局工具配置找到git项,填写git可执行文件的本地路径  2.具体任务配置 任务配置中,General中勾选GitHub项目,项目UR... 查看详情

ci-持续集成

...工具Git代码管理系统(如:GitOSC)Linux操作系统(Ubuntu)Jenkins系统软件安装包Jenkins的Python语言的SDKPython及 TornadoWeb 框架以上的技术选型,都是尽量使用& 查看详情

(虚拟机vs容器)&(持续集成:敏捷开发&ci&jenkins&git&docker)

原文:https://blog.csdn.net/jingzhunbiancheng/article/details/80994909 容器相比虚拟机更轻量一虚拟机 二容器 一、本质上的区别:VM(VMware)在宿主机器、宿主机器操作系统的基础上创建虚拟层、虚拟化的操作系统、虚拟化的仓库,... 查看详情