本文转载自微信公众号「 小姐姐味道」,作者 小姐姐养的狗。转载本文请联系 小姐姐味道公众号。
“公司的代码资产,要放在公司内部。防止一切不可见的敌人,通过腐朽老套的方式,对公司的利益产生非法的侵占。”
SVN的年代,已经一去不复返,现在都用上了高大上的git。虽然有Gitea、Gogs这样更加轻量级的git代码托管平台,但目前应用最广泛的,还是gitlab。
搭建GitLab过程并没有想象中的简单,因为它是Ruby写的,又是依赖DB,又是依赖Redis,而且有权限要求。但这东西,也就折腾一次,剩下的就是享受它的功能了。
我们平常的开发中,不可或缺的有一些持续集成的需求。比起再部署一个jenkins,使用gitlab的CI功能,更加如丝般柔滑。
1. 一个样例
gitlab实现ci功能很简单,直接在仓库的顶层目录,创建一个.gitlab-ci.yml文件,就可以了。我们大多数的应用,就配置这样一个文件就OK了。
下面是一个vuepress项目的ci文件。
- image: xjjdog.cn:5000/node:8.16.2
- pages:
- tags:
- - pages
- cache:
- paths:
- - node_modules/
- script:
- - npm config set registry http://xjjdog.cn:8082/repository/npm-all/
- - npm install
- - npm run docs:build
- artifacts:
- paths:
- - public
- only:
- - master
以上的脚本,将在每次提交代码到master的时候,自动触发执行。它将自动编译node项目,并发布到该发布的地方。
在左侧菜单,可以找到相关的菜单。
点击进入,可以看到执行的结果和操作人等等。码、包一体,是不是比jenkins更加直观?好用?
2. yaml文件
所以我们的工作内容,就全部集中到yaml文件的编写上。
你会发现,不论你是使用docker-compose,还是使用k8s,甚至是现在的Gitlab CI,你本质上,就是一个YAML工程师。
YAML工程师!是自动化时代先进生产力的代表。
我们来瞧一下.gitlab-ci.yml中的关键概念。其实从它身上,我们能够看到Makefile的一点影子。
3. runner
这个tags是什么意思呢?当你第一次使用的时候,可能会因为它的配置错误,造成ci无法执行。
我们在左侧的菜单里面,找到全局的settings,里面也有一个CI/CD,其中有一个Runners选项,就是用来配置Runner锁关联的tag的。
也就是说,你需要安装一个叫做GitLab Runner的东西。它才是我们任务真正执行的节点。
安装完毕之后,需要执行gitlab-runner register注册进来。只有你在看到下面字样的时候,才证明你的tags为pages的任务能够执行。
从上面的描述中,我们就可以看出来,这个gitlab-runner,是分布式的,我们可是利用空间的机器,部署多个runner。所以,不用担心会对原gitlab服务器造成压力。
任务执行时间太长,一直挂着占用资源怎么办?
可以使用timeout来设置过期时间。
- JobName:
- script: restart
- timeout: 30m
为什么gitlab可以作为一个比较理想的CI平台呢?
因为在它之上,有最原始的代码。有持续集成工具。有Wiki,甚至想要更高级的Pages,也有。
对于一个git项目来说,可以说你想要的,它都有了。而且所有的变更,都可以在一个普通的.gitlab-ci.yml文件里进行变更。可以说gitlab是一个十分锋利的工具了。
事实上,为了让操作更加柔滑,我们使用了gitlab的rest api。通过配置相应的token,就可以使用Java代码,控制gitlab的所有行为。
把它集成在自己公司的工具库里面,感觉是非常棒的。
作者简介:小姐姐味道 (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。我的个人微信xjjdog0,欢迎添加好友,进一步交流。
域名备案 还要公安备案吗?是的,根据《中华人民共和国计算机信息系统安全保护条...
在讲解二叉树的时候,提到二叉树的遍历除了前中后序遍历,还有层次遍历。 前中后...
说明:数据猿此次发布的2021中国数据智能产业图谱/全景图2.0版是在此前1.0版的基...
前言 配置审计 Config 将您分散在各地域的资源整合为全局资源列表 可便捷地搜索...
这是 Python 之禅特别系列的一部分,重点是第十和第十一条原则:沉默的错误(或...
TOP云(zuntop.com)科技新增美国 服务器租用 ,跟美国著名服务器机房提供商合作...
.icu域名 需要备案吗?. icu域名 是可以备案的,至于是否需要备案,这取决于使用...
序言 评价一个算法的好坏,我认为关键是看能不能解决问题。如果算法能很好地解决...
作者:崔昊 编辑:阿里波特 来源:阿里云研究公众号 编者按: 中国儿童内容领域...
近日,专注于企业数字化转型的咨询公司发现,仅有13%的企业在现有的业务上大量地...