当前位置: 首页 > news >正文

【GitLab】GitLab-CI(shell方式)入门配置

【GitLab】GitLab-CI(shell方式)入门配置

1. 仓库配置

根目录下增加 .gitlab-ci.yml文件,示例:

stages:          # 作业分组列表及分组执行顺序- build- test- deploybuild-job:stage: build   # 这个作业运行在build分组script:- cd /home && ls -la- whoami- echo "Compiling the code..."- echo "Compile complete."unit-test-job:stage: test   # 这个作业运行在test分组,只有build分组执行成功后才能执行script:- echo "Running unit tests... This will take about 60 seconds."- sleep 60- echo "Code coverage is 90%"lint-test-job:stage: test    # 这个作业运行也在test分组,配置了多个runner或单个runner的concurrent>1时可与unit-test-job作业并行执行script:- echo "Linting code... This will take about 10 seconds."- sleep 10- echo "No lint issues found."deploy-job:stage: deploy  # 这个作业运行在deploy分组,只有test分组执行成功后才能执行environment: productionscript:- echo "Deploying application..."- echo "Application successfully deployed."

常用字段:

  • stages:定义所有可用的作业分组(阶段),分组内的作业并行执行(需多个Runner),各分组顺序执行。 常用stage有:.pre(特殊阶段,在所有阶段之前运行)、buildtestdeploy.post(特殊阶段,在所有阶段之后运行)。

  • deploy-doc-job:一条作业

    • stage:作业所属的分组,如果作业没有指定 stage,它会被分配到 test 分组
    • variables:作业级变量,将覆盖全局变量
    • script:作业要执行的命令或脚本,除了“触发作业”之外的所有作业都需要一个script
    • dependencies:作业依赖的其他作业的
    • timeout:作业的超时时间
    • tags:运行作业的 Runner(见下文)标签
    • rules:指定何时运行或跳过作业,过时的only和except仍受支持,但不能在同一作业中与rules一起使用

更详细的说明见官方文档。

2. Gitlab创建Runner

GitLab Runner 是 GitLab CI/CD 的核心组件之一,负责执行 GitLab CI/CD 流水线中的作业。

  1. 网页中打开仓库,设置–>CI/CD–>Runner–>新建项目Runner

  2. 选择Runner平台(Linux为例)等信息

    注意:运行未打标签的作业选项未启用时,Runner只能够执行标签*选项中配置的作业,无标签或标签不在列表中的作业将无法执行。

  3. 确认后转入runner配置页面,包含安装、注册Runner的方法。

2.1 安装Runner服务

首次安装可参考如何安装 Runner?中的提示在运行脚本的Linux主机上安装Runner,主要步骤:

# 下载gitlab-runner
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64# 赋予执行权限(确保/usr/local/bin在PATH中)
sudo chmod +x /usr/local/bin/gitlab-runner# 创建gitlab-runner用户
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash# 安装并启动gitlab-runner服务
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start

gitlab-runner help 可查看帮助

根据官方文档,需要检查 /home/gitlab-runner/.bash_logout,如果该文件存在且其中含有如下脚本时:

if [ "$SHLVL" = 1 ]; then[ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi

将其注释掉,否则在执行shell作业时会报错(Job failed: prepare environment: exit status 1.)。

2.2 注册Runner

同样在该主机上,执行网页中的提供注册命令。推荐使用sudo执行,以普通用户注册的需要手动运行 gitlab-runner run并保持运行,否则作业无法执行;以root用户注册的runner自动由系统服务执行。

sudo gitlab-runner register  --url http://xx.xx.xx.xx:25153  --token xx-xxx--xx-

根据提示,输入Runner的参数,其中 Enter an executor使用shell。

配置完成后配置信息存储在 config.toml 中,以普通用户注册的路径为 ~/.gitlab-runner/config.toml,root用户为 /etc/gitlab-runner/config.toml

命令执行完成后,gitlab网页中将显示注册成功信息,并可在Runner页查看到状态:

Runner状态
在这里插入图片描述

绿色圆形标识代表Runner注册正确,下方为该runner处理的任务标签列表。

3. 执行作业

至此,Gitlab即可执行 gitlab-ci.yml中定义的作业,作业在流水线中执行:

  • 推送后自动执行,分支、标签等,可在yml中定义更多规则
  • 手动执行:项目–>构建–>流水线–>运行流水线
    可通过项目-->构建-->作业查看作业状态。

作业执行日志
在这里插入图片描述

http://www.dtcms.com/a/395716.html

相关文章:

  • Python入门 | 三个if语句程序作业和基础语法笔记
  • BeanPropertyRowMapper
  • 深入解析Java中String的不可变性
  • windows-安装kafka并启动
  • linux 驱动私有数据
  • 信息系统监理师软考备考指南:组织协调与沟通管理专题精讲
  • 【开题答辩全过程】以 JAVA农产品销售系统为例,包含答辩的问题和答案
  • Python 网络爬虫生态全景综述
  • MCP— Model Context Protocol(模型上下文协议)
  • 解决ubuntu无法连接上security.ubuntu.com:80 (185.125.190.81)的问题
  • SHAP分析 | MATLAB实现XGBoost极限梯度提升树多输入单输出回归预测+SHAP可解释分析分析(预测新数据,多指标评价)
  • 磁共振成像原理(理论)11:梯度回波 (Gradient Echoes)
  • odoo18全局菜单搜索
  • langchain链中的高级组件
  • 鸿蒙:使用animation或animateTo实现图片无限旋转效果
  • 02)阿里 Arthas(阿尔萨斯)开源的 Java 诊断工具原理分析、JVM动态加载“代理程序“(Agent) 的机制、vm.loadAgent原理
  • [学习笔记][机器学习-周志华] 第1章 绪论
  • Node.js面试题及详细答案120题(111-120) -- 进阶与扩展篇
  • 鞋底布线前传:CAD三维建模如何实现精准凸起设计
  • 华为无线网络技术基础
  • Django 模型与 ORM 全解析(二):数据库操作
  • Python 2025:AI与自动化运维的融合新纪元
  • MySQL 核心函数与约束详解
  • 设计模式简要
  • 服务扩容与容量评估手册
  • Pyside6 + QML - 信号与槽08 - 一个函数被多个信号触发(带参数)
  • 【第十一章】Python 调用 MySQL 全面指南:从基础到实践​
  • 新手玩家如何使用云手机
  • 【Datawhale组队学习202509】AI硬件与机器人大模型 task02 视觉感知与手眼协调
  • 基础算法---【前缀和】