在软件开发的道路上,持续集成和持续部署是不可或缺的一环,就像是您的项目的生命力源泉。而GitLab Runner,则是这条流水线上的得力助手,为您的代码提供快速、可靠的构建和部署。今天,就让我们一起来探索如何在CentOS 7上搭建GitLab Runner,释放持续集成的魔力吧!
GitLab Runner 15.0引入了注册 API 请求格式的更改。它阻止 GitLab Runner 与低于 14.8 的 GitLab 版本进行通信。您必须使用适合 GitLab 版本的 Runner 版本,或者升级 GitLab 应用程序。
如果直接使用yum install git
会出现git版本为1.8,太老了,不适用
#安装源git
yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm
#安装git
yum install git
#更新git
yum update git
添加 GitLab Runner 的官方仓库:
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
安装 GitLab Runner:
# 这里如果很慢可以在本机下载再上传一下,https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/index.html
sudo yum install gitlab-runner
登录到你的 GitLab 服务器。
转到你项目的设置页面。
在左侧导航栏中选择 CI/CD -> Runners 设置。
复制注册 Runner 的 URL 和 Token。
回到你的 Runner 主机上,在终端中执行注册命令,使用提供的 URL 和 Token:
gitlab-runner register --url --token
gitlab-runner register --url --token
https://gitlab.com/
config.toml
中,用于识别该 Runner。
你可以根据需要选择一个描述性的名称,以便于识别和管理。例如,你可以使用项目名称、环境名称或者其他有意义的标识作为 Runner 的名称。
根据你的需求和环境选择一个合适的执行器,并输入其名称。
.gitlab-ci.yml
)。
通过以上步骤,你应该能够成功在 CentOS 7 上搭建和注册 GitLab Runner,并确保它能够正常工作。如果遇到任何问题,请查阅官方文档或在社区寻求帮助。
在配置Runner执行器时,需要指定执行器的类型和相关参数,以确保任务能够按照预期顺利执行。以下是配置Runner执行器的一般步骤:
示例配置文件如下所示:
stages:
- build
- test
build_job:
stage: build
script:
- npm install
- npm run build
tags:
- docker
variables:
DOCKER_DRIVER: overlay2
artifacts:
paths:
- public/
test_job:
stage: test
script:
- npm test
tags:
- docker
variables:
DOCKER_DRIVER: overlay2
allow_failure: true
在上面的示例中,我们使用了Docker执行器,并设置了相关参数,如标签(tags)、Docker驱动器(DOCKER_DRIVER)等。这样配置的Runner将会在Docker容器中执行构建和测试任务。
根据实际情况,可以根据需要添加其他执行器类型和参数,以满足项目的具体要求。
在配置Runner执行器的高级配置和扩展时,可以进一步优化CI/CD流程,并集成各种第三方工具和服务,以满足更复杂的需求。以下是一些高级配置和扩展的示例:
示例配置文件如下所示:
stages:
- build
- test
build_job:
stage: build
script:
- npm install
- npm run build
cache:
paths:
- node_modules/
artifacts:
paths:
- dist/
test_job:
stage: test
script:
- npm test
cache:
key: "$CI_COMMIT_REF_NAME"
paths:
- node_modules/
artifacts:
paths:
- test_reports/
dependencies:
- build_job
在上面的示例中,我们配置了缓存(cache)和共享卷(artifacts),以及与其他作业的依赖关系(dependencies)。这样可以加速构建过程,同时实现测试报告等数据的共享和传递。