gitlab-runner基础

305 阅读3分钟

Gitlab Runner类型

类型

  • shard 共享类型,运行整个平台项目的作业(gitlab)
  • group 项目组类型, 运行特定group下的所有项目的作业(group)
  • specific 项目类型,运行指定的项目作业(project)

状态

  • locked: 锁定状态,无法运行项目作业
  • paused: 暂停状态,暂时不会接受新的作业

GItlab Runner命令

启动命令

gitlab-runner --debug <command>   #调试模式排查错误特别有用。
gitlab-runner <command> --help    #获取帮助信息
gitlab-runner run       #普通用户模式  配置文件位置 ~/.gitlab-runner/config.toml
sudo gitlab-runner run  # 超级用户模式  配置文件位置/etc/gitlab-runner/config.toml

注册命令

gitlab-runner register  #默认交互模式下使用,非交互模式添加 --non-interactive
gitlab-runner list      #此命令列出了保存在配置文件中的所有运行程序
gitlab-runner verify    #此命令检查注册的runner是否可以连接,但不验证GitLab服务是否正在使用runner。 --delete 删除
gitlab-runner unregister   #该命令使用GitLab取消已注册的runner。
​
​
#使用令牌注销
gitlab-runner unregister --url http://gitlab.example.com/ --token t0k3n
​
#使用名称注销(同名删除第一个)
gitlab-runner unregister --name test-runner
​
#注销所有
gitlab-runner unregister --all-runners

服务命令

gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
​
# --user指定将用于执行构建的用户
#`--working-directory  指定将使用**Shell** executor 运行构建时所有数据将存储在其中的根目录
​
gitlab-runner uninstall #该命令停止运行并从服务中卸载GitLab Runner。
​
gitlab-runner start     #该命令启动GitLab Runner服务。
​
gitlab-runner stop      #该命令停止GitLab Runner服务。
​
gitlab-runner restart   #该命令将停止,然后启动GitLab Runner服务。
​
gitlab-runner status #此命令显示GitLab Runner服务的状态。当服务正在运行时,退出代码为零;而当服务未运行时,退出代码为非零。

流水线参数

KeywordDescription
script运行的Shell命令或脚本。✅
image使用docker映像.
services使用docker服务映像.
before_script在作业运行前运行脚本。 ✅
after_script在作业运行后运行脚本。✅
stages定义管道中的阶段,运行顺序。 ✅
stage为工作定义一个阶段,可选,未指定默认为test阶段。 ✅
only限制创建作业的时间. ✅
except限制未创建作业的时间. ✅
rules条件列表,用于评估和确定作业的选定属性,以及是否创建该作业. ✅
allow_failure允许作业失败. 失败的工作不会影响提交状态.✅
when什么时候开始工作.✅
environment作业部署到的环境的名称.
cache在后续运行之间应缓存的文件列表. ✅
artifacts成功时附加到作业的文件和目录列表.
dependencies通过提供要从中获取工件的作业列表,限制将哪些工件传递给特定作业.
coverage给定作业的代码覆盖率设置.
retry发生故障时可以自动重试作业的时间和次数。 ✅
timeout定义自定义作业级别的超时,该超时优先于项目范围的设置。 ✅
parallel多少个作业实例应并行运行.✅
trigger定义下游管道触发器.
include允许此作业包括外部YAML文件.
extends该作业将要继承的配置条目.
pages上载作业结果以用于GitLab页面.
variables在作业级别上定义作业变量. ✅
interruptible定义在通过新的运行使其冗余时是否可以取消作业.
resource_group限制作业并发.