Gitlab CI/CD
本地推送代码至Git仓库,触发Gitlab
CI执行的条件:
1、仓库根目录存在.gitlab-ci.yml文件
2、该仓库有可用的Gitlab runner
Gitlab runner for Linux
下载runner
根据服务器的型号,注意区分linux32位和64位系统,进行选择下载
# Linux x86-64
sudo wget -O/usr/local/bin/gitlab-runnerhttps://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
# Linux x86
sudo wget -O/usr/local/bin/gitlab-runnerhttps://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-386
# Linux arm
sudo wget -O/usr/local/bin/gitlab-runnerhttps://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm
从gitlab官网下载耗时较长,请耐心等待
安装runner
下载完成后,给gitlab-runner添加执行权限
sudo chmod +x /usr/local/bin/gitlab-runner
之后创建一个gitlab-runner用户,之后使用CI/CD时,都是在这个用户下进行的。
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner
--shell /bin/bash
创建好了用户之后,接下来安装gitlab-runner
(后面注册runner出现一系列问题,个人建议还是使用root用户安装gitlab runner,避免后面有其他问题)
sudo gitlab-runner install --user=gitlab-runner
--working-directory=/home/hawk-test/gitlab-runner
如果安装过程出现错误,想要卸载gitlab-runner,命令为
sudo gitlab-runner uninstall
安装完成后,如下图所示
安装成功以后,启动gitlab-runner
sudo gitlab-runner start
注册runner
首先找到自己的gitlab项目下设置,CI/CD,Runner
可以看到如下:
URL,和注册令牌一会在注册runner的时候需要用到,
在自己的runner服务器上,输入如下命令,开始注册runner:
gitlab-runner register
依次输入gitlab上的url和token,回车
填写runner描述,自己填写
之后填写runner的tags,用于在之后CI/CD操作时标识使用哪个runner来进行流水线
之后选择需要以哪种方式运行runner,这里我选择用shell方式运行runner,大家可以自行根据自己需要选择
到此,runner就注册完毕了。可以到gitlab上看下,刚刚注册的runner是否存在
注册runner成功。状态要显示绿色圆圈才表示在线,如果显示黑色,感叹号,则注册的runner是有问题的,会影响流水线的执行。
如果显示黑色,提示“New runner.Has not connected yet”,尝试以下操作
删除/etc/gitlab-runner/config.toml
将~/.gitlab-runner/config.toml拷贝到/etc/gitlab-runner/目录
sudo cp~/.gitlab-runner/config.toml /etc/gitlab-runner/config.toml
gitlab-runner能够注册成功的配置如下
当注册之后,runner状态为黑色,可能是配置文件中没有runners部分
Gitlab runner for windows
下载runner
1、 下载gitlab-runner for windows,可以从官方文档的下载链接进行下载
https://docs.gitlab.com/runner/install/windows.html
2、 在windows电脑D盘新建gitlab-runner文件夹,将下载的exe重命名为gitlab-runner.exe,放入D:\gitlab-runner路径下
安装runner
1、电脑上搜索powershell,以管理员身份运行,cd d:\gitlab-runner
2、执行.\gitlab-runner.exe install安装
3、执行.\gitlab-runner.exe start启动
注册runner
1、注册runner 执行./gitlab-runner.exe register
2、提示Enter the GitLab instance URL (for example,https://gitlab.com/):,输入gitlab
web页面setting-CI/CD-runner下的url,如下图
3、输入上图中的token
4、输入description和tag,自己设定
5、runner注册完成,到页面上查看runner状态是否正常
CI配置文件.gitlab-ci.yml
.gitlab-ci.yml文件在仓库的根目录,可通过点击文件或在CI/CD-Editor查看配置详情和进行编辑。
关于.gitlab-ci.yml语法格式,详细介绍见官网链接:https://docs.gitlab.com/ee/ci/yaml/gitlab_ci_yaml.html
stages
.gitlab-ci.yml告诉Gitlab runner要做什么事情,默认三个stage:build, test, deploy。不必三个都用,没有job的stage会被忽略。如上图中,只有两个stage
jobs
图中build_job和test_job是两个job,同一stage下的job并行执行,不同stage下的job按build、test顺序先后执行。如果前一个stage的job fail,后续job不执行。
每个job的格式如下:
test_job:
stage: test
script:
- echo "Tests run..."
- cd d:\script
- python gitlab-test.py
tags:
- test-win
Job中需要指定stage,如果不指定,默认被放在test stage
Script:需要执行的shell命令
before_script:如果指定了before_script,在每个job执行前会先执行before_script,可以通过job中写before_script来覆盖全局的before_script
after_script:如果指定了after_script,在每个job执行完后会执行after_script
tags:指定执行job的runner的tag
only:指定分支
pipelines
当push代码后触发了CI执行,执行状态可以在CI/CD-Pipelines中查看,执行中为running,未执行为pending,成功为success,失败为fail,取消为cancel,点进每一个pipeline可以看到执行过程每个job的log
网友评论