如何将 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中肿瘤样本的病…...
车灯设计师必看:CATIA中FreeStyle模块的10个高效技巧
车灯设计师必看:CATIA中FreeStyle模块的10个高效技巧 在汽车照明系统的设计中,曲面造型的精度与美感直接决定了最终产品的市场竞争力。作为行业标准工具,CATIA的FreeStyle模块为车灯设计师提供了强大的自由曲面创建能力,但真正掌握…...
告别魔法!Gemini 3.1 Pro 国内稳定API使用教程(开发者+普通用户双版)
一、开篇:Gemini 3.1 Pro 到底强在哪? Gemini 3.1 Pro 推理能力直接翻倍,彻底解决了AI行业“快则不精、精则太贵”的痛点。 不管你是开发者想对接API,还是普通用户想低成本体验超强推理模型,这篇文章都给你一套清晰、…...
模拟开关原理与应用全解析
1. 模拟开关的本质与应用场景模拟开关这个器件,在电路设计中扮演着"交通警察"的角色。想象一下城市道路上的红绿灯——它不会改变车辆本身,只是控制着车流的通断和方向。模拟开关的工作原理与之类似,它专门用于控制模拟信号的路径选…...
DAY3--SQL单字段去重查询
SQL基础入门:电商用户数据单字段去重查询实操 这一章能解决什么电商工作问题? 前两章我们学了SELECT *(全量看数据)和SELECT 字段列表(精准取字段)。这一章讲的是另一个高频操作:去重。 我讲一个…...
Cadence Virtuoso保姆级教程:从零完成反相器版图绘制、DRC到后仿真的完整流程
Cadence Virtuoso保姆级教程:从零完成反相器版图绘制、DRC到后仿真的完整流程 在集成电路设计领域,Cadence Virtuoso是业界公认的标准工具之一。对于初学者而言,掌握从原理图到版图再到后仿真的完整流程至关重要。本文将带领你一步步完成反相…...
DBSCAN vs K-means:5个真实数据集对比,教你选对聚类算法
DBSCAN与K-means实战对比:5个真实数据集下的算法选择指南 第一次接触聚类分析时,我被一个简单问题困扰:为什么同样的数据用不同算法会得到截然不同的分组结果?记得当时用K-means处理地理坐标数据,结果把绵延的海岸线硬…...
2026届学术党必备的降重复率平台推荐榜单
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 正在逐渐发生改变的是学术写作模式,借助的是人工智能论文工具,它的核…...
偏迹(Partial Trace)的定义和数学物理意义
我们将通过多个计算示例来掌握偏迹(Partial Trace)。1. 偏迹的定义1.1 动机在量子力学中,复合系统 的态用密度矩阵 描述。那么,当我们只关心子系统 时,需要忽略掉其中 的状态,这里通过对子系统 求平…...
小产能起步第一台设备怎么选?5-100MW半自动产线入门,曜华激光为你指路
对于刚踏入光伏组件制造领域的中小厂商而言,从一条小产能半自动产线起步,是务实而理性的选择。然而,面对从电池片到组件的十几道工序,第一台设备该选什么?本文从入门角度,梳理设备选型的优先级与判断标准。…...
天梯赛L2-006 树的遍历
L2-006 树的遍历 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其后序遍历序…...
