Gitlab-Runner配置

ops/2025/1/12 8:39:27/

原理

Gitlab-Runner是一个非常强大的CI/CD工具。它可以帮助我们自动化执行各种任务,如构建、测试和部署等。Gitlab-Runner和Gitlab通过API通信,接收作业并提交到执行队列,Gitlab-Runner从队列中获取作业,并允许在不同环境下进行作业。

安装和注册

  1. 安装:
yum install gitlab-runner
  1. 注册:

首先获取gitlab的token,以供gitlab-runner注册时使用,Gitlab runner 分 3 类,注册在不同位置runner权限也不同:

    1. Share Runner(推荐使用):所有 group 的所有 project 都能使用;
    1. Group Runner: 该 Group 内的所有 Project 都可以使用;
    1. Specific Runner:一个 Project 独享的 Runner,其他项目默认不能使用;

token位置gitlab → group/project → settings → cicd → runners
在这里插入图片描述

注册runner,根据提示依次配置以下参数

gitlab-runner register Please enter the gitlab-ci coordinator URL (e.g. <https://gitlab.com/>): 
https\://****** Please enter the gitlab-ci token for this runner: 
VyaV8t******  Please enter the gitlab-ci description for this runner: 
test runner Please enter the gitlab-ci tags for this runner (comma separated): 
test Whether to run untagged builds \[true/false]: \[false]: 
true Whether to lock the Runner to current project \[true/false]: \[true]: 
true Registering runner... succeeded runner=qtWs5Db6 Please enter the executor: shell, ssh, docker+machine, docker, docker-ssh, parallels, virtualbox, docker-ssh+machine, docker: 
shell Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! 
  • 第一个参数输入gitlab-url
  • 第二个参数输入token
  • 第三个参数输入描述
  • 第四个参数输入标签tag
  • 第五个参数选择执行的命令之类的,可以根据自身需求选择。

*executor执行器

在注册runner的最后一步提示了选择所需的执行器,不同执行器对ci的影响很大,简单介绍一下runner的执行器

执行器作业运行说明
shell默认执行器意味着所有job都在runner上运行
dockerdocker容器job将在docker容器运行
docker-windowsWindows Docker 容器
docker-sshDocker 容器,使用 SSH 连接
ssh远程SSH
parallelsParallels VM,使用 SSH 连接一种虚机
virtualboxVirtualBox VM,但使用 SSH 连接一种虚机
docker+machine类似docker,但使用自动缩放的 Docker 机器
docker-ssh+machine类似docker-ssh,但使用自动缩放的 Docker 机器
kubernetesKubernetes pods

.gitlab-ci.yml配置

举个简单的例子,主要为了展示.gitlab-ci.yml如何让gitlab与runner联动

# This file is a template, and might need editing before it works on your project. stages: - hello - build sayhello: tags: - test stage: hello script: - echo hello world compile: tags: - test stage: build script: - bash build.sh

以上配置文件设置了hello和build两个步骤,tags指定用哪个runner运行ci。git接收到代码push,根据ci规则建立Pipelines向runner发起job,runner接收job开始根据设置的步骤依此执行。

在这里插入图片描述

第一步输出 hello world
在这里插入图片描述

第二步执行项目中的build.sh脚本
在这里插入图片描述


http://www.ppmy.cn/ops/149395.html

相关文章

《Opencv》信用卡信息识别项目

目录 一、项目介绍 二、数据材料介绍 1、模板图片&#xff08;1张&#xff09; 2、需要处理的信用卡图片&#xff08;5张&#xff09; 三、实现过程 1、导入需要用到的库 2、设置命令行参数 3、模板图像中数字的定位处理 4、信用卡图像处理 5、模板匹配 四、总结 一…

vs2022编译webrtc步骤

1、主要步骤说明 概述&#xff1a;基础环境必须有&#xff0c;比如git&#xff0c;Powershell这些&#xff0c;就不写到下面了。 1.1 安装vs2022 1、选择使用C的桌面开发 2、 Windows 10 SDK安装10.0.20348.0 3、勾选MFC及ATL这两项 4、 安装完VS2022后&#xff0c;必须安…

iOS中的设计模式(二)- 原型模式

引言 在软件开发中&#xff0c;创建对象的过程往往涉及许多复杂的初始化步骤&#xff0c;尤其是在对象之间具有相似属性或状态时。传统的做法是每次都从头开始创建新的实例&#xff0c;然而&#xff0c;这种方法可能导致性能问题和代码冗余。为了解决这一问题&#xff0c;原型…

QT + opencv 实现形状(轮廓)模板匹配

QT opencv 实现形状(轮廓)模板匹配 实现思路 1.创建模板数据&#xff1a;主要是提取模板的轮廓信息&#xff0c;这一步通常通过边缘检测实现。将模板的轮廓信息存储起来。 代码&#xff1a; //创建形状模板 bool cvLearnShapeMatchPattern_(Mat matDst, MyShapeUiParam pa…

字节小米等后端岗位C++面试题

C 基础 引用和指针之间的区别&#xff1f;堆栈和堆中的内存分配有何区别&#xff1f;存在哪些类型的智能指针&#xff1f;unique_ptr 是如何实现的&#xff1f;我们如何强制在 unique_ptr 中仅存在一个对象所有者&#xff1f;shared_ptr 如何工作&#xff1f;对象之间如何同步…

RK3568-ubuntu旋转显示和触摸

旋转屏幕显示 临时生效&#xff1a;xrandr -o <normal,inverted,left,right,0,1,2,3> 永久生效&#xff1a;/etc/X11/Xsession.d/55gnome-session_gnomerc最后一行添加临时生效命令旋转屏幕触摸 方法1&#xff1a;cp /usr/share/X11/xorg.conf.d/40-libinput.conf /etc…

机器学习顶会NeurIPS: AGILE: A Novel Reinforcement Learning Framework of LLM Agents

&#x1f31f; 研究背景 &#x1f31f; 随着大型语言模型&#xff08;LLMs&#xff09;在指令遵循、推理和零样本学习等方面展现出卓越的能力&#xff0c;基于LLMs的自主代理&#xff08;LLM Agents&#xff09;的研究逐渐兴起。然而&#xff0c;如何将规划、反思、工具使用等…

模型 九屏幕分析法

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。九屏幕法&#xff1a;全方位分析问题的系统工具。 1 九屏幕分析法的应用 1.1 新产品研发的市场分析 一家科技公司计划开发一款新型智能手机&#xff0c;为了全面评估市场潜力和风险&#xff0c;他们…