Git Runner 是指使用 Git 进行版本控制的 CI/CD 运行器(Runner),通常与 GitLab CI、GitHub Actions 或其他持续集成/持续部署工具结合使用。它的主要作用是在代码库中执行自动化构建、测试和部署等任务。下面是一些有关 Git Runner 的基本信息和如何使用它的步骤。
1. Git Runner 的基本概念
- Runner:Git Runner 是一个独立的应用程序,可以通过 GitLab CI 或 GitHub Actions 来运行作业。它可以在本地或云环境中运行,可以与不同的环境(如 Docker、虚拟机等)集成。
- CI/CD:持续集成 (CI) 是一种软件开发实践,通过自动化构建和测试过程,频繁地集成代码变化。持续部署 (CD) 是将代码自动部署到生产环境的一种方式。
2. GitLab Runner 和 GitHub Actions Runner
GitLab Runner
如果你使用 GitLab,GitLab Runner 是一个开源项目,可以在本地机器或服务器上安装。它支持多种执行环境,包括 Docker、Shell、SSH 和 Kubernetes。
3. 环境搭建
下面以在ubantu服务器上搭建运行Gitlab runner为例。
在runner/gitlab-runner - Packages · packages.gitlab.com网址中下载对应自己电脑配置的deb包,我的电脑为64位,所以下载的gitlab-runner_amd64.deb。
①安装gitlab runner 的deb包
将下载的deb包复制到服务器你的安装路径下,例如我的安装路径在~/download/git_runner,将deb包放置在该路径下,执行下面的命令,./表示当前路径。
sudo dpkg -i ./gitlab-runner_amd64.deb
如果执行上述命令时出现INFO: Docker installation not found, skipping clear-docker-cache ,没有安装成功,那就需要安装Docker
②安装Docker
sudo apt update
安装依赖包
sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
添加 Docker 的官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
官方安装
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
安装最新版本的 Docker Engine-Community
sudo apt install docker-ce
到此安装完成, 可以输入 sudo docker --version 或者 sudo docker run hello-world 测试是否安装成功
安装成功后再执行①安装gitlab runner 的deb包就可以成功了。
③注册gitlab runner
gitlab-runner register -n --name my_runner -u 服务器url -r zQ-LgUyCuU5EToehUrQ9 --executor shell --builds-dir=编译路径 --cache-dir=缓存路径
--name 表示runner名称
-u 表示gitlab服务器url
-r 表示gitlab上指定仓库runner的token
--executor shell 表示编译时执行脚本的类型为shell
--builds-dir 表示runner使用的编译目录,编译后的工程存放在该路径下
--cache-dir 表示runner使用的缓存目录
没有setting这个选项表示权限不够。
④开启gitlab runner
gitlab-runner run
⑤查看gitlab runner状态
sudo gitlab-runner status
⑥上述配置完之后打开gitlab可以看到我们刚才注册的gitrunner
上述操作完之后,关闭远程控制服务器runner也会被关闭,可以在/etc/ini.d/下面写个脚本实现开机自启动,这样就可以在后台运行了,不需要再ssh连接服务器手动开启。
4. 配置
.gitlab-ci.yml
在工程根目录下创建.yml文件,根据自己需求编写文件,这里简单介绍了基本用法。这样提交代码的时候就可以实现自动编译啦。在Build->Jobs中可以查看每次提交的编译结果。
image:
name: gitlab/gitlab-runner:latest
entrypoint: ["/bin/sh", "-c"]
#执行job的顺序
stages:
- build
- test
- deploy
build_job:
stage: build
tags:
- my_runner # 选择使用的runner,如果没有设置tags不会往下执行这个job
only: #运行script的条件
- tags
- test_runner # 仅在test_runner的分支上执行
script: #linux命令行
- cd ~
test_job:
stage: test
tags:
- my_runner
script:
- echo 'tests completed'
deploy_job:
stage: deploy
tags:
- my_runner
only:
- master # 仅在master的分支上执行
script:
- echo "部署到生产环境"
- ./deploy.sh
- echo 'deployment success'
版权归原作者 Cara23456 所有, 如有侵权,请联系我们删除。