如何将 Bamboo agent 能力迁移到极狐GitLab tag 上?
极狐GitLab 是 GitLab 在中国的发行版,专门面向中国程序员和企业提供企业级一体化 DevOps 平台,用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规,而且所有的操作都是在一个平台上进行,省事省心省钱。可以一键安装极狐GitLab,详情可以参考极狐GitLab 下载安装官网。
GitLab 中文版学习资料
- 驭码CodeRider 官网:https://coderider.gitlab.cn/
- GitLab 中文版官网:https://gitlab.cn
- GitLab 中文文档:https://docs.gitlab.cn
- GitLab 中文下载安装:https://gitlab.cn/install
本文将演示如何使用极狐GitLab Runer tags 来完成复杂 CI/CD 流水线的构建。
CI 流水线通常在开始的时候都比较简单—— 就是一个简单的作业来构建二进制文件并且将它推送到制品库或者某个生产环境上。变更频繁的软件需求就引入了更多的复杂性,比如添加更多的作业来在最终构建作业被执行之前,执行一些特定的检查或者审查一些输出。
当构建预期针对具有不同系统架构或资源需求的不同系统时,这些复杂性会呈指数级增加。这在支持多个部署平台的操作系统、移动应用程序或软件发行版等项目中很明显。为了满足这些类型环境中构建的不同需求,拥有多个满足所需要求的 Runner 是关键,这就是极狐GitLab Runner tag 的用武之地。如果你使用的是 Atlassian 的 Bamboo,它们被称为“代理功能”。
Runner tag 允许通过支持特定用例的 tag 来对 Runner 进行组织管理;然后使用这些 tag 来确保 CI 作业在满足其要求的 Runner 上运行。一项作业可能需要仅少数运行者可用的 GPU 资源;将作业标记到 Runner 的标签允许将其调度到具有 GPU 的 Runner 上。
Bamboo 上的 Agent 功能用于通过指定必须匹配或可用于在 Bamboo agent上运行的作业的二进制文件或自定义标识符来实现相同的功能。在这篇博文中,我们将研究如何将 Bamboo agent 功能转换为极狐GitLab Runner tag。
Bamboo 有不同的 agent 能力:
-
可执行功能指定代理上可用的可执行文件。
-
JDK 功能指定 Java 开发工具包已安装并可用于构建。
-
版本控制功能让 Bamboo 了解 agent 上设置的版本控制系统以及客户端应用程序所在的位置。
-
Docker 功能用于定义为 Docker 任务安装 Docker 的agent。
-
自定义功能使用键/值标识符来标识 agent 提供的独特功能。
极狐GitLab 通过 tag 来识别 Runner 让流程变得更加简单,其中一些可以分配多个 tag 来表示它们可以为作业提供不同的功能。下面来演示如何在极狐GitLab Runner 中使用 tag。
在极狐GitLab Runner 中添加 tag
在安装完极狐GitLab 实例以后进行 Runner 注册时,其中一个步骤就是提供一系列用逗号隔开的 tag 的名称。如果在 CI/CD 流水线中的某个 stage 中不提供任何 tag,你通常可以通过编辑 /etc/gitlab-runner/config.toml文件来添加遗漏的 tag。
你还可以通过访问 Runner 的编辑界面并且更新 tags字段来管理极狐GitLab Runner tag。你可以选择让 Runner 只执行有适当 tag 的作业,或者当没有标记 tag 的作业在运行时,Runner 可以执行这些没有 tag 标记的作业。Run untagger jobs需要开启才能完成上面的功能。
在 .gitlab-ci.yml文件中使用 tag
为了用特定的 Runner 运行作业,在作业的配置中添加相关的 tag 就行,比如:
build_ios:image: macos-13-xcode-14stage: buildscript:- bundle check --path vendor/bundle || bundle install --path vendor/bundle --jobs $(nproc)- bundle exec fastlane buildtags: - saas-macos-medium-m1
在上面的例子中,该作业仅在具有 M1 芯片并且标记为 saas-macos-medium-m1的 macOS 设备上运行的 Runner 来构建 iOS 应用程序。
使用多个 tag
一个作业可以指定多个 tag 来针对不同范围的 Runner,特别是在软件开发生命周期中运行多个 Fleet Runner 的组织中。仅当找到具有该作业所标记的所有 tag 的 Runner 时,作业才会运行。比如,如果一个作业有 [linux,android,fastlane]这些标签,一个具有 [android,fastlane]或 [linux,android]标签的 Runner 将不会执行该作业,因为没有完整的 tag 能够和 Runner 相匹配。
具有 tag 和变量的动态作业
你可以使用变量来决定 tag 的值,从而来动态影响哪个 Runner 来选择哪个作业。比如:
variables:KUBERNETES_RUNNER: kubernetesjob:tags:- docker- $KUBERNETES_RUNNERscript:- echo "Hello runner selector feature"
在这个例子中,只有具有 kubernetestag 的 Runner 才会执行作业。你还可以进一步的使用 parallel:matrix关键字来处理更复杂的流水线。比如:
deploystacks:stage: deployparallel:matrix:- PROVIDER: awsSTACK: [monitoring, app1]- PROVIDER: gcpSTACK: [data]tags:- ${PROVIDER}-${STACK}environment: $PROVIDER/$STACK
这个例子有三个并行执行的作业,每个作业都有不同的 tag,分别是 aws-monitoring、aws-app1、gcp-data,这样就正好匹配到了三个不同的 Runner。
在极狐GitLab CI 配置中使用 tag 给了用户更多的灵活性,来决定何地以及如何正确构建你的应用程序,也让资源的使用更高效,因为这能够将稀缺资源限定到特定的 Runner 上,并且决定如何将 Runenr 分配到不同的作业上。
极狐GitLab 作为 GitLab 的发行版,专门为中国程序员和企业服务,也是一个一体化的 DevOps 平台,同样具有极狐GitLab CI/CD功能,用法和上面所示一样。
相关文章:
如何将 Bamboo agent 能力迁移到极狐GitLab tag 上?
极狐GitLab 是 GitLab 在中国的发行版,专门面向中国程序员和企业提供企业级一体化 DevOps 平台,用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规,而且所有的操作都是在一个平台上进行,省事省心省钱。可以一键安装极狐GitL…...
正则表达式入门:Python ‘ re ‘ 模块详解
正则表达式(Regular Expression,简称 re)是一种强大而灵活的工具,广泛用于字符串匹配、替换和分割等操作,尤其在处理网页爬虫数据时非常有用。Python 提供了 " re " 模块来支持正则表达式的使用,…...
thinkphp8.0+aliapy(支付宝)pc网站支付
环境:宝塔-centOS8.5,php8.3 第一步:安装alipay v3版本的安装依赖包; composer require alipaysdk/openapi:dev第二步:根据官方文档,把支付相关的类引用进来; <?php declare (strict_types 1);namespace app\p…...
高速信号的眼图、加重、均衡
目录 高速信号的眼图、加重、均衡眼图加重均衡线性均衡器CTLE判决反馈均衡器DFE 高速信号的眼图、加重、均衡 眼图 通常用示波器观察接收信号波形的眼图来分析码间串扰和噪声对系统性能的影响,从而估计系统优劣程度,因而眼图分析是高速互连系统信号完整…...
2024年PMP考前冲刺必背的学习笔记,整理好给你!
项目的四大特点:临时性、独特性、变革驱动性和创造商业价值。 项目管理:将知识、技能、工具与技术应用于项目活动,以满足项目的要求 Pestle:P政治,E经济,S社会,T技术,L法律,E环境 …...
增加服务器带宽可以提高资源加载速度吗?
答案是可以的 ,增加服务器带宽通常能够提高资源加速速度。带宽是服务器与互联网之间传输数据的速率,它决定了在单位时间内可以传输的数据量。以下是增加带宽如何提高资源加速速度的几个方面: 1.更快的数据传输:带宽增加后…...
汽车EDI: NAVISTAR EDI对接
Navistar International Corporation 是一家美国商用车辆制造公司,总部位于伊利诺伊州的Lisle。公司以生产中型和重型卡车、公共汽车、柴油发动机和底盘闻名,其产品广泛应用于运输、建筑、和农业等行业。Navistar 的历史可以追溯到1831年,由国…...
【Word多级标题完整设置】设置各级标题样式将多级列表链接到各级标题样式中
Word多级标题完整设置 一、设置各级标题样式主标题样式设置中英文字体、字形以及字号设置段落设置(缩进、间距和行距) 一级标题样式设置中英文字体、字形以及字号设置段落设置(缩进、间距和行距) 二级标题样式设置中英文字体、字形…...
不同分辨率下vue页面的高度自适应
1. 使用视口单位 .element { height: 100vh; /* 使得元素高度等于视口高度的100% */ /* 可以减去一部分高度以适应页眉或页脚 */ height: calc(100vh - 100px); } 2. 使用百分比(%)高度 .parent { height: 100vh; /* 父元素高度等于视口高度 */…...
“野生钢铁侠 “ 稚晖君一连亮出5 款智元人形机器人,地表最强!
打麻将、拆快递、纽扣穿针,还能做 30KG 重物提拉! 沉寂一年,稚晖君带着他的二代机器人全家桶重磅回归,秀出的各种新技能令人眼前一亮。 智东西 8 月 18 日报道,今日," 野生钢铁侠 " 稚晖君一连亮…...
JSON Web Token (JWT): 理解与应用
JWT(JSON Web Token)是一种开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以JSON对象的形式安全地传输信息。JWT通常用于身份验证和授权目的,因为它可以使用JSON对象在各方…...
LeetCode面试题Day12|LC209 长度最小的子数组、LC30 串联所有单词的子串
题目一: 指路: . - 力扣(LeetCode)209 长度最小的子数组 思路与分析: 滑动窗口,目的在于降低算法的时间复杂度,每次只维护一定长度的数组而非原数组的全部元素。那么既然需要长度࿰…...
【开端】JAVA泛型类的使用
一、这是一个类 public class CommonVo<D extends CommonDao> implements Serializable { 我们来探讨一样 CommonVo<D extends CommonDao> 这个尖括号里到底能写啥。 首先这是一个泛型类型D ,D类继承了CommonDao,说明尖括号里只要放入一…...
mp3转换器免费有哪些?6个音频转换器助你一键转换各种音频
音乐如同生活的调味剂,让每一个平凡瞬间都跃动着不凡的旋律。 但有时候,当你想把这些歌曲放到你的设备上时,却发现格式不兼容,无法播放。 别担心!接下来,我们将介绍几款免费mp3转换工具,它们能…...
力扣爆刷第174天之TOP200五连刷136=140(最小k数、字典序、跳跃游戏)
力扣爆刷第174天之TOP200五连刷136140(最小k数、字典序、跳跃游戏) 文章目录 力扣爆刷第174天之TOP200五连刷136140(最小k数、字典序、跳跃游戏)一、LCR 159. 库存管理 III二、450. 删除二叉搜索树中的节点三、440. 字典序的第K小…...
蚁群算法原理与实战(Python、MATLAB、C++)
蚁群算法 1.蚁群算法来源 蚁群算法(Ant Colony Optimization,简称ACO)是一种模拟自然界中蚂蚁寻找食物路径行为的优化算法,主要用于解决组合优化问题。它的灵感来源于意大利学者Marco Dorigo在1992年提出的蚂蚁系统模型。 蚁群算…...
HTML静态网页成品作业(HTML+CSS)——非遗阜阳剪纸介绍设计制作(1个页面)
🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有1个页面。 二、作品演示 三、代…...
如何做萤石开放平台的物联网卡定向?
除了用萤石自带的4G卡外,我们也可以自己去电信、移动和联通办物联网卡连接萤石云平台。 1、说在前面 注意:以下流程必须全部走完,卡放在设备上才能连接到萤石云平台。 2、大致流程 登录官网→下载协议→盖章(包括骑缝章&#…...
ptrade排坑日记——定时任务执行后,文件权限会变化。
前言 今天要和大家分享的是使用ptrade的定时任务过后,执行的时候,文件权限会发生变化! 一、问题描述 定时任务执行后, /home/fly/data/fundamentals_daily/all.pickle、/home/fly/data/valuation_new/all.pickle 文件权限会从…...
TILs 评分:TCGA 肿瘤浸润淋巴细胞病理切片深度学习评分!图片下载与可视化
生信碱移 病理切片的TILs评分 TCGA 数据库是最大的肿瘤组学公开数据库之一。尽管如此,更多的研究往往仅局限于关注 TCGA 中各类肿瘤样本的上游组学信息或基本病理特征,而忽略了对样本数字化 H&E 病理染色图像的进一步应用。 ▲ TCGA中肿瘤样本的病…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...
Python训练营-Day26-函数专题1:函数定义与参数
题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…...
