gitlab-runner 的安装使用(含 .gitlab-ci.yml 的简单使用)

简介

GitLab Runner 是一个开源项目,用于运行您的作业并将结果发送回 GitLab。它与 GitLab CI 一起使用,GitLab CIGitLab 随附的开源持续集成服务,用于协调作业。

简单理解就是一个服务放在那儿,当你提交代码时,会触发一个开关,然后在那个服务上执行一下相应的脚本。

通常用于代码检测,编译,服务部署等。

安装

linux

  1. 使用脚本,通过 yum 安装
# 添加yum源
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash
# 安装
yum install gitlab-runner
# 查看版本
gitlab-runner -v
  1. 官方提供
# 我当前centos 7 为  Linux x86-64
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

# 设置安装目录可执行
sudo chmod +x /usr/local/bin/gitlab-runner

# 直接使用 root 用户权限运行 gitlab-runner (或者其他用户,看需求)
sudo gitlab-runner install --user=root --working-directory=/home/gitlab-runner
#启动
sudo gitlab-runner start

# 如果提示命令  command not found  需要配置环境
# 添加软链接
ln -s -f /usr/local/bin/gitlab-runner /usr/bin/gitlab-runner

# 查看版本
gitlab-runner -v

windows

直接去官网下载编译好的 exe 官网下载 windows 地址

注册

需要从 gitlab 的网页上,选择 settings->CI/CD->Runners,就可以看到注册所需要的 URLtoken
请添加图片描述
然后执行 gitlab-runner register,照着提示输入即可。
请添加图片描述

gitlab-runner list 可查看运行中的 runner

.gitlab-ci.yml 语法

官方文档上的内容很详细,可以直接上官网查看,这里仅提一些较常用的,先看一个例子:

#定义变量
#变量的读取顺序:gitlab 仓库配置的 runner 的 variables -> yml 中定义的 variables -> 环境变量
variables:
  #定义克隆的路径  $CI_BUILDS_DIR 为 runners.builds_dir 设置的路径
  GIT_TEST_PATH: ../test
  TEST_SSH: git@gitlab.com:xxx/test.git
  # 子模块,添加了这个变量后,子模块就会自动拉取了
  GIT_SUBMODULE_STRATEGY: recursive

before_script:
  - echo "每个 job 执行前都会走"

after_script:
  - echo "每个 job 执行后都会走"

# 定义 stage(build, deploy)
stages:
  - build
  - deploy

# job 名称,随意写  
build_job:
  stage: build
  tags:
	- default
  only:
    - dev
  except:
    - main
  script:
    - if [ ! -d "$GIT_TEST_PATH" ]; then
    - git clone -b dev $TEST_SSH $GIT_TEST_PATH
    - else
    - git -C $GIT_TEST_PATH pull
    - fi
    - echo "自己做编译相关脚本"
    - chmod a+x ./build.sh
    - ./build.sh #可以直接执行脚本,脚本中也可以获取到先前定义好的变量

deploy_job:
  stage: deploy
  tags:
    - default
  only:
    - dev
  script:
    - echo "自己做发布相关脚本"
关键字简介
variables定义变量
stage定义 job stage(默认:test
tags用来指定 job 选择哪个 Runner(同时 Runner 也要设置 tags),一个 git 仓库可以指定多个 Runner,一个 jobtags 也可指定多个
script必须要有的,是 Runner 执行的命令或脚本
only指定分支,只有该分支提交时才执行的 job
except执行 job 的时候排除的分支
before_script重写一组在作业前执行的命令
after_script重写一组在作业后执行的命令

变量的读取顺序

官方文档
如果出现同名

  1. gitlab 仓库配置的 runnervariables
    请添加图片描述

  2. yml 中定义的 variables

variables:
  GIT_TEST_PATH: ../test
  1. 编译环境的环境变量
    触发变量或预定的流水线变量。
    项目级别变量或受保护变量。
    组级别变量或受保护变量。
    YAML定义的作业级变量。
    YAML定义的全局变量。
    部署环境变量。
    预定义的环境变量。

问题

  • before_script 每个 job 执行的时候都会走一遍。
  • 上个 stage 生成的文件在下个 stage 中能否看到?是看不到的,下个 stage 开始的时候,会重新 checkout 新分支,执行如下:
Reinitialized existing Git repository in /home/gitlab-runner/builds/8-Hx8YsC/0/sfg/test/.git/
Checking out 1fdc2396 as dev...
Removing master # mster 这个文件就是上个 stage 生成的被删掉了
  • 当前仓库需要使用其他仓库怎么办?官方的建议是使用 git 子模块(具体怎么使用就不在本篇说明了),然后可以配置变量 GIT_SUBMODULE_STRATEGY: recursive 直接更新子模块代码。上面例子中,使用相对路径来克隆模块,也可以使用。
  • 定义多个 job 使用同样的 stage 标签会怎样,相同 stage 标签的 job 会并行执行,没有顺序,但是 stage 会顺序执行,这篇文章的图很直观:.gitlab-ci.yml 自定义多个stages. CI/CD 自定义多个阶段的执行顺序

总结

有一定的服务器经验的人来说,搭建 gitlab-runner 并执行 CI 还是挺容易的,耐心看看官方文档,基本上问题都能解决。

  1. 拥有一台编译服务器(没条件的用 docker 或者 本机都行,保证网络连通),并将相应的环境配好。
  2. 安装 gitlab-runner
  3. 配置 .gitlab-ci.yml 文件

但是实际使用的过程中总会遇到各种各样的问题,可以先搞个测试仓库先研究研究。

参考

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GitLab RunnerGitLab CI/CD的执行代理,用于运行作业和管道。在这里提供GitLab Runner安装使用方法。 1. 安装GitLab Runner - Ubuntu/Debian系统 ``` # 安装依赖 sudo apt-get update sudo apt-get install -y curl # 安装GitLab Runner curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash sudo apt-get install gitlab-runner ``` - CentOS/RHEL系统 ``` # 安装依赖 sudo yum install -y curl policycoreutils-python openssh-server # 安装GitLab Runner curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash sudo yum install gitlab-runner ``` 2. 注册GitLab Runner - 打开GitLab网站,进入Settings -> CI/CD -> Runners页面,获取注册命令。 - 执行注册命令,输入GitLab网站的URL和注册令牌。 ``` sudo gitlab-runner register ``` 3. 编写.gitlab-ci.yml文件 - 在GitLab项目的根目录下创建.gitlab-ci.yml文件。 - 编写作业和管道。 ``` stages: - build - test - deploy build: stage: build script: - echo "Build" test: stage: test script: - echo "Test" deploy: stage: deploy script: - echo "Deploy" ``` 4. 提交代码并触发管道 - 将.gitlab-ci.yml文件提交到GitLab仓库。 - 在GitLab网站上进入项目的Pipelines页面,点击"Run Pipeline"按钮,即可触发管道。 5. 查看管道结果 - 在GitLab网站上进入项目的Pipelines页面,可以查看管道的执行结果。 - 如果管道执行失败,可以点击"Retry"按钮重新执行管道。 以上就是GitLab Runner安装使用方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值