国产持续集成工具 - Gokins

news/2024/10/3 23:27:33

国产持续集成工具 - Gokins

持续集成(Continuous Integration ,CI) 介绍

在传统软件开发过程中,集成通常发生在每个人都完成了各自的工作之后。在项目尾声阶段,通常集成还要痛苦的花费数周或者数月的时间来完成。持续集成是一个将集成提前至开发周期的早期阶段的实践方式,让构建、测试和集成代码更经常反复地发生。

开发人员通常使用一种叫做CI Server 的工具来做构建和集成。持续集成要求开发人员能够自测代码。分别测试各自代码来保证它能够正常工作,这些测试通常被称为单元测试(Unit tests)。

代码集成以后,当所有的单元测试通过,不同的开发人员就得到了一个绿色构建(green build)。这表明他们已经成功地集成在一起,代码正按照测试预期地在工作。然而,尽管集成代码能够成功地一起工作了,它仍未为生产做好准备,因为它没有在类似生产的环境中测试和工作。

Continuous Delivery (CD) 持续交付是持续集成的延伸,将集成后的代码部署到类生产环境,确保可以以可持续的方式快速向客户发布新的更改。如果代码没有问题,可以继续手工部署到生产环境中。

持续部署(Continuous Deploy)

如果真的想获得持续交付的好处,应该尽早部署到生产环境,以确保可以小批次发布,在发生问题时可以轻松排除故障。于是有了持续部署。

我们通常将这个在不同环境发布和测试的过程叫做部署流水线

持续部署是在持续交付的基础上,把部署到生产环境的过程自动化。

持续集成工具

Jenkins

Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。

不可否认的Jenkins是一款十分优秀的集成工具,拥有良好的生态和发展,但是它仍旧拥有一些弊端。

gokins

gokins 由golang编写,是一款国产的优秀的集成工具

  • 是一个款轻量级、能够快速部署的持续集成工具

  • 高效、简单的使用方式

  • 自动化流水线工程。

使用gokins

下载运行

  • 项目地址 : https://github.com/mgr9525/gokins

  • 可以选择到Gokins的github主页下载对应平台的执行文件

  • 下载最新版本

  • 或者直接在服务器上执行以下命令

## 获取可执行文件
wget -c  https://github.com/mgr9525/gokins/releases/download/v0.1.0/gokins-linux-amd64## 授权
chmod +x gokins-linux-amd64## 运行gokins
./gokins-linux-amd64##查看帮助命令
./gokins-linux-amd64 --help
  • 运行成功后 访问 8030 端口

初始化配置

  • 设置root账号密码

在这里插入图片描述

  • 登录后我们可以查看主界面
    在这里插入图片描述

流水线的使用

  1. 更新git代码

配置代码目录

cd ~
mkdir programs
cd programs
git clone http://用户名:密码@git.xxx.cn/IPFS/IPFS-Slave.git
cd IPFS-Slave/
pwd

使用用户名密码clone防止流水线更新代码时需要登录凭证

复制此目录路径,新建流水线时需要

  1. 流水线构建

  2. 新建好之后进入插件列表新建插件

  3. 首先新建一个更新git的插件

  4. 之后新建一个编译插件

  5. 返回运行流水线

  • 以上就完成了一个简单的CI流水线工程

开发Gokins

Gokins目前还处于需要不断进步的阶段,如果你有兴趣假如我们,可以在github上提交pr或者iss

Gokins交流群

服务器环境

 服务器: ubuntu18 linux64位项目需要环境:git、golang、node.js

安装项目环境

  1. git
    要求 git 2.17.1 或者 2.x 其他版本

  2. node.js
    要求 node 12.19.0

  3. golang
    要求 golang 1.15.2

Gokins的优势和未来趋势

  • 体积小,无论是可执行文件还是运行内存,相对于Jenkins的运行内存节约不止一个量级,目前Gokins的运行内存大概就是在20kb左右
  • 简单友好的UI交互,更加利于上手
  • 自定义的插件配置,让你可以应对多种情况
  • 安全,绝不收集任何用户或者服务器信息

在未来,一个简单、易用的CI/CD工具会大大提高企业的生产效率。同时Gokins不仅仅可以作为代码交付方面的工具,同样可以成为自动化运维的核心组件,用于支持大型工程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/29075.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

HelloWorld

随便建造一个文件夹,存放代码。 建造一个Java文件文件后缀名为.Java Hello.java 【要注意】系统可能没有显示文件名后缀,我们需要手动打开3.编写代码public class Hello{public static void main(String[] args){System.out.print("Hello,World!"); } } 编译 javac…

2024 FIC取证比赛wp

本次竞赛容器挂载密码为: 2024Fic@杭州Powered~by~HL!2024年4月,卢某报案至警方,声称自己疑似遭受了“杀猪盘”诈骗,大量钱财被骗走。卢某透露,在与某公司交流过程中结识了员工李某。李某私下诱导卢某参与赌博游戏,起初资金出入均属正常。但随后,李某称赌博平台为提升安…

[Cmake Qt]找不到文件ui_xx.h的问题?有关Qt工程的问题,看这篇文章就行了。

前言 最近在开发一个组件,但是这个东西是以dll的形式发布的界面库,所以在开发的时候就需要上层调用。如果你是很懂CMake的话,ui_xx.h的文件目录在$下 然后除了有关这个ui_xx.h,还有一些别的可以简单聊聊的 一、父子工程组织,或者说依赖关系 在使用CMake进行开发的时候,一…

Linux之手把手教会修改网卡名称【转载】

一、为什么要修改网卡名称在早期的linux系统中,网卡名称常常以传统的命名方式eth0、eth1、eth2来命名。 例如,CentOS 6之前,网络接口使用连续号码命名:eth0、eth1等,但是,如果再新增硬件设备,也有可能会被识别成 eth0,eth1等。 CentOS 7开始,改变了网卡设备命名规则,…

01背包问题

有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。 输入格式 第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。 接…

74. 搜索二维矩阵

给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。 每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。 示例 1:输入:matrix = [[1,3,5,7],[10,11,16,20],[2…

Java容器化改造

docker java项目容器化改造 前后端分离项目 前端 https://gitee.com/yuco/eladmin-web.git 后端 https://gitee.com/yuco/eladmin.git要素:vue npm springboot mysql redisjava后端容器化 思路: 了解在物理机虚拟机的部署流程,然后编写dockerfile进行容器化部署。 java项目,…