You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
$ gitlab-runner.exe register
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
填写项目url
Please enter the gitlab-ci token for this runner
填写项目token
Please enter the gitlab-ci description for this runner
填写描述
Please enter the gitlab-ci tags for this runner (comma separated):
填写runner的标签说明,以逗号分隔,可填可不填
Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
这里填写shell(适用于windows本机运行)
CI是什么?
CI,全称 Continuous Integration,指的是短时间内多次集成代码到主干,它是一种软件开发实践。在每次集成中,可以部署自动化的测试、编译和发布,从而在带代码集成时就发现潜在的错误。
gitlab上如何进行CI?
gitlab 8.0+默认提供持续集成服务,要使用CI服务,需要配置两项内容:
.gitlab-ci.yml
放在项目根目录下,每次代码push时,会自动根据该配置文件生成pipeline,然后交给runner执行
runner
是一组非gitlab服务器上的进程,用来实际执行pipeline里的任务(jobs)
执行后的CI流水线如下图所示:
正确配置好上述两项内容后,就可以进行CI测试了,当然,CI时执行什么样的任务要根据具体项目和环境来定,比如说一个前端项目,就包括npm依赖安装、eslint语法检测、单元测试、e2e测试、webpack打包、测试服务器发布等任务,总之,配置很灵活,多看文档,多实践就可以
如何配置runner?
runner的类型有很多种,如
不同环境,配置也不同,可以参照官方文档来配置:
gitlab runner
这里以我的windows本机为例来安装runner:
1、 在D盘下创建文件夹 D:\GitLabRunner
2、 下载gitlab runner程序到此文件夹,下载地址,注意下载版本是windows x86或amd64即可。重命名为gitlab-runner.exe
3、 以管理员身份运行cmd,运行下面的命令
4、 gitlab-runner 注册
其中url和token需要从项目网站上获取,如下图:
5、 安装并运行
$ gitlab-runner install $ gitlab-runner start
6、 适当调整
D://GitlabRunner/config.toml
文件,切换为powershell来执行运行成功后,可以在任务管理器中看到gitlab-runner进程,同时在gitlab页面上能看到runner信息,这样就大功告成了,不过记得勾选下面的选项:
使得runner可以运行未设置标签(tag)的jobs,因为出于习惯,很多job都没有设置tag,runner默认只会识别和自己tag一致的job
如何配置.gitlab-ci.yml文件?
先看一个例子:
额,好吧,上面的图截下来文字太小了,贴个文字版的:
配置好的runner会根据上述文件依次执行stage,stage下的job并行执行,如果某个stage执行失败,则CI会忽略掉之后的stage,直接进入失败状态。当且仅当所有allow_failure为false的job都执行成功时,这次CI才算成功。
上面配置文件只适用于一个简单的前端项目,要在其他项目中使用,请参照 其他项目配置demo 以及
gitlab-ci.yml配置文档
生成徽章
在pipeline setting里面可以找到指定分支的徽章地址,加入到README里面即可 :)
其他有用参考
The text was updated successfully, but these errors were encountered: