Jenkins 多配置项目处理并发设备使用

2024-04-04

Case

我有一个詹金斯奴隶女巫在移动设备(android,ios)上运行葫芦测试。为了区分测试在哪些机器(iOS 的 mac 或 Android 的 Linux)上运行,我还使用Throttle 并发构建插件。通过这种方式,我可以区分设备所连接的 Android 或 Mac Jenkins 从设备。

我使用映射表和自己编写的 bash 脚本按名称调用设备并在此特定从设备上执行测试。映射表将名称映射到设备 ID(或 iOS 的 IP)。

架构如下:

[Master]--(Slave-iOS)---------iPhone6
 |             |--------------iPhone5
 |            
 |--------(Slave-Android)-----HTCOne
               |--------------Nexus
               |--------------G4

要将设备移交给 bash 脚本,我使用Jenkins 矩阵项目插件,这让我可以创建设备和测试用例列表,例如:

          HTCOne Nexus G4
Run         x     x     x
Delete      x     x     x
CreateUser  x     x     x

遗憾的是这个列表只能顺序执行。现在我还想在多个设备上并行构建测试,反之亦然。

Question

我搜索一个处理设备分配的 Jenkins 插件。如果一个触发器需要特定设备,则应等到该设备可访问并且可以执行测试。该插件应与 Jenkins 中的 shell 执行集成。

如果它可以与 Matrix Project 插件结合使用,那将是一个很大的优势!

到目前为止我所调查的内容:

  • 排除插件,
  • Throttle Concurrent Builds Plugin,[用于指定slave]
  • 锁和闩锁插件, 对于到目前为止列出的所有设备,我不知道如何将它们链接到矩阵配置并动态获取设备。我也不知道 如何将锁定的资源信息获取到我的脚本中。
  • 端口分配器插件,未经测试,但似乎有同样的问题
  • 外部资源调度程序似乎只分配一种资源,如果它是矩阵配置,则找不到任何资源。

我发现的相关问题有帮助但没有解决问题:

  • 如何防止某些 Jenkins 作业同时运行? https://stackoverflow.com/questions/6276272/how-to-prevent-certain-jenkins-jobs-from-running-simultaneously
  • Jenkins:对作业进行分组并限制该组的构建处理器 https://stackoverflow.com/questions/12834677/jenkins-group-jobs-and-limit-build-processors-for-this-group
  • Jenkins不允许同一作业在同一节点上同时运行? https://stackoverflow.com/questions/11158382/jenkins-to-not-allow-the-same-job-to-run-concurrently-on-the-same-node
  • 如何确保 Hudson 中同时只运行某一类别的作业? https://stackoverflow.com/questions/516883/how-do-i-ensure-that-only-one-of-a-certain-category-of-job-runs-at-once-in-hudson
  • 从另一个作业中禁用 Jenkins 作业 https://stackoverflow.com/questions/8661349/disable-jenkins-job-from-another-job

If Throttle 并发构建插件 https://wiki.jenkins-ci.org/display/JENKINS/Throttle+Concurrent+Builds+Plugin不能按您的要求工作多配置项目, try 排除插件 https://wiki.jenkins-ci.org/display/JENKINS/Exclusion-Plugin具有动态资源名称,例如:SEMAPHORE_MATRIX_${NODE_NAME}

然后添加构建步骤“关键块开始”(以及可选的“关键块结束”步骤),该步骤将保持此构建块执行,直到 SEMAPHORE_MATRIX_${NODE_NAME} 未在任何其他作业(包括当前 Matrix 子作业)上使用。

(...仅当 SEMAPHORE_MATRIX_${NODE_NAME} 可用时才运行构建步骤...)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jenkins 多配置项目处理并发设备使用 的相关文章

  • 使用功能分支时避免 Maven 存储库版本冲突

    Question 如何处理 Maven 多项目构建的功能分支 Jenkins 构建和部署这些分支 以将开发人员的构建开销降至最低 但开发和功能分支无法构建相同的 Maven 版本 否则我们将面临工件和源代码之间不匹配的风险 我们有一个脚本来
  • 如何阻止与 RSpec 和 Capybara 的外部连接?

    在我的 Rails 项目中 我想编写非理想条件的测试 例如缺乏互联网连接或超时 例如 我正在使用 gem 来联系 API 并且希望确保在我的应用程序和外部 API 之间存在连接问题时能够正确处理错误 我已经可以通过用录像机制作固定装置并从
  • 什么是 Android 测试协调器?

    谷歌最近发布了Android测试支持库1 0 读完后overview https android developers googleblog com 2017 07 android testing support library 10 is
  • Jenkins git 插件 - 有时太慢

    以下内容摘自 Jenkins 日志 00 00 03 135 gt git fetch tags progress email protected cdn cgi l email protection some org some repo
  • 诸如用于测试 HTTP 请求的虚拟 REST 服务器之类的东西? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我一直在四处寻找 但找不到任何这样的网站 我想知道是否有一些虚拟服务器可以响应测试 GET 请求并返回
  • 如何在 Jenkins 中安排构建?

    如何安排 Jenkins 构建 使其只能在每天的特定时间进行构建 例如下午 4 点开始 0 16 1 7 我理解为 每个月周一到周日下午 0 分钟 下午 4 点 但是它每分钟都会构建 如果有任何建议 我将不胜感激 谢谢 Update 请阅读
  • 错误:找不到模块“jasmine-core”

    我安装了以下内容进行测试 devDependencies jasmine core 2 4 1 karma 0 13 22 karma jasmine 0 3 7 karma phantomjs launcher 1 0 0 运行后karm
  • 如何在 Rails 测试中测试 params 哈希?

    以下内容会生成错误 未定义的局部变量或方法 params assert equal params recipient id users one id 如何测试参数哈希 另外 你如何测试assert redirect当存在参数时 参数附加到
  • Jenkins:在管道 Jenkins 文件内执行 AWS CLI 命令

    您知道如何在 aws 中执行 AWS CLI 命令吗 Jenkinsfile为了建立管道 我没有找到任何插件 首先 您需要在服务器上安装 aws cli 并确保 jenkins 用户有权运行它 或者在创建 EC2 实例时简单地使用 Amaz
  • Jenkins:尽管没有变化,SCM 仍然触发持续构建

    我们遇到一个问题 尽管没有代码更改 SCM 仍在触发构建 SCM 每 15 分钟轮询一次更改 并且仅在发现更改时才触发构建 以下是连续 SCM 轮询日志的几个示例 Started on Nov 15 2013 11 47 14 AM Usi
  • 抑制 Jenkins 文件中的管道输出

    当我在詹金斯上运行构建时 它总是在执行詹金斯步骤时打印管道 控制台当前输出 Build context CI clean app clean BUILD SUCCESSFUL in 22s 2 actionable tasks 2 exec
  • 适用于移动设备的响应式订单确认电子邮件?

    我从未见过令人惊叹的订单确认 发票电子邮件 即使是最好的 html5 网站也会发送糟糕的订单确认电子邮件 有时是纯文本 我相信这是因为发票通常需要使用表格来显示购买的物品 这在移动设备上实现起来非常困难 我发现了一些让手机上的表格更易于管理
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只
  • Angular 7测试重试当模拟http请求无法实际重试时

    我有以下尝试使用 OAuth 的拦截器refresh token每当获得任何 401 错误 响应时 基本上 刷新令牌是在第一个 401 请求上获取的 获取后 代码会等待 2 5 秒 在大多数情况下 第二个请求不会触发错误 但如果触发错误 令
  • Jenkins 共享库 - 从 /vars 中的 /src 文件夹导入类

    我正在尝试为我的 CI 流程编写一个 Jenkins 共享库 我想引用一个类 src定义在全局函数内的文件夹 vars文件夹 因为它允许我将大部分逻辑放在类中而不是全局函数中 我遵循 Jenkins 官方文档中记录的存储库结构 Jenkin
  • 如果 CMAKE_RUNTIME_OUTPUT_DIRECTORY 更改,CMake 无法找到测试

    我正在使用 CMake 构建我的项目 并且尝试为每个模块创建一堆测试套件 显然如果我修改变量CMAKE RUNTIME OUTPUT DIRECTORY那么 ctest 找不到要运行的测试并失败 我做了一个最小的例子来展示我正在谈论的内容
  • 如何让 Jenkins、Sonar 和 JaCoCo 插件在 Eclipse Tycho 插件项目(或者 Cobertura)中协同工作?

    我的设置是 詹金斯 1 448 声纳2 13 詹金斯声纳插件 1 72 Sonar 的 MySql 数据库 我有以下项目 Eclipse 插件项目 使用Maven 多个模块 父级 Maven 项目 源插件项目 测试片段项目 一个简单的 JU
  • 使用鼻子获取设置中当前测试的名称

    我目前正在使用鼻子编写一些功能测试 我正在测试的库操作目录结构 为了获得可重现的结果 我存储了一个测试目录结构的模板 并在执行测试之前创建该模板的副本 我在测试中执行此操作 setup功能 这确保了我在测试开始时始终具有明确定义的状态 现在
  • Wiremock:如何匹配没有特定属性的 JSON 请求?

    我正在尝试模拟一个在 POST 中接受 JSON 正文的 API 调用 它有两种可能的响应 如果身体含有SearchCenter属性 回答 A 如果正文不包含SearchCenter 回答B In the 请求匹配 http wiremoc
  • Maven 构建在 Jenkins 上失败,但可以在本地计算机上运行

    我有一个全新安装的 Debian Wheezy 服务器 运行 Jenkins 1 596 最新版本 安装自官方deb包 http pkg jenkins ci org debian 为了与詹金斯一起玩 我创建了一个新的Maven项目使用 G

随机推荐

  • 更新某些类别的左列/如何在布局文件中设置类别 ID

    我想要一个在左侧显示某些类别幻灯片的块 但是 我通过引用布局文件中的左列 在所有页面中显示了幻灯片放映块 我们需要幻灯片仅出现在左侧的某个类别 id 225 中 到目前为止我的解决方案路线图 1 将特定类别 url 重写到我的自定义模块 控
  • Xcode 4.5 无法在模拟器或设备上运行/加载应用程序

    我在 2007 年中的 Mac Mini 上运行 OS X Lion 10 7 5 上的 Xcode 4 5 我之前遇到过这个问题 当我构建时 模拟器和实际设备都不会运行应用程序 我正在使用 Phonegap 2 1 HTML JS Jqu
  • Recharts CompedChart 从零开始 X 轴刻度

    我正在使用 ComdedChart 和 shoing 条形图和线条 通常该线应从 x 轴的 0 处开始 但是当使用组合图表时无法做到这一点 如果您在上图中观察到勾选a应该从 x 轴开始 x 轴和 y 轴开始的 0 点 但事实并非如此 这是我
  • Matlab - 多维数据的PCA分析与重构

    我有一个大型多维数据集 132 维 我是数据挖掘的初学者 我想使用 Matlab 来应用主成分分析 不过 我看到网上有很多功能解释 但我不明白它们应该如何应用 基本上 我想应用 PCA 并从我的数据中获取特征向量及其相应的特征值 在此步骤之
  • 使用 XIB 实例化视图

    我有一个按照以下指南创建的 xib 如何创建自定义 iOS 视图类并实例化它的多个副本 在 IB 中 https stackoverflow com questions 9251202 how do i create a custom io
  • 如何在R中处理hdf5文件?

    我有一个文件在hdf5格式 我知道它应该是一个矩阵 但我想在其中读取该矩阵R这样我就可以研究它 我看到有一个h5r包应该有助于解决这个问题 但我没有看到任何简单易读 理解的教程 网上有这样的教程吗 具体来说 你如何阅读hdf5这个包的对象
  • 使用 REST API 更新 JIRA 票证状态

    我可以使用 CURL 命令并方便地使用 json 数据在 JIRA 中创建票证 curl D u X POST data H Content Type application json http rest api 2 issue 我现在尝试
  • 为什么 pack 和 grid 会覆盖父窗口小部件的预定义尺寸?

    我注意到每次创建 Tkinter 小部件并在小部件实例化期间或通过设置其尺寸时配置 http effbot org tkinterbook tkinter widget configuration htm稍后添加 一旦我添加 最后这些就不会
  • 这里使用持久ID来解决什么pickle问题?

    From https docs python org 3 library pickle html persistence of external objects https docs python org 3 library pickle
  • 如何定义分层数据结构的DDD聚合根?

    我目前正在尝试将领域驱动设计原则应用于我的开发实践 我一直致力于如何为按层次结构组织的数据定义聚合根 我们以文件夹结构为例 每个文件夹可以有 0 N 个子文件夹 子文件夹 0 N 也可以有 0 N 个子文件夹 依此类推 我对文件夹及其所有直
  • 将标签分配给相应的网格单元

    我从头开始编写了一个 YOLO 模型 并有一个 numpy 数组 如下所示 1 0 1 0 4 0 3 0 2 0 1 1 1 0 0 2 0 3 0 4 0 5 0 0 0 0 0 0 0 这就是它在 pandas 对象中的样子 Obj
  • 导入错误:无法导入名称“语言”

    我正在尝试运行 python 脚本 但收到此错误 from iso639 import languages ImportError cannot import name languages 我已经安装了iso639 但仍然出现此错误 任何想
  • 如何在 PHP 中从 ipinfo.io 获取位置?

    我在用ipinfo io http ipinfo io使用 PHP 获取我当前的城市 位置 但是 使用这段代码时我无法看到我的城市 ipaddress SERVER REMOTE ADDR function ip details ip js
  • Rails:如何限制 has_many 关联中的项目数量(来自父级)

    我想限制协会中的项目数量 我想确保用户拥有的东西不超过 X 件 这个问题之前被问过 https stackoverflow com questions 7863618 rails 3 1 limit user created objects
  • flutter 使用 url_launcher uri 发送电子邮件

    我正在使用 url launcher 在我的应用程序中使用系统电子邮件发送电子邮件 我正在使用下面的代码 这个人做得很好 void launchEmailSubmission async final Uri params Uri schem
  • 类只有静态字段和方法是不好的做法吗?

    我有一堂课 其中包括only静态成员变量和静态方法 本质上 它充当通用实用程序类 类只包含静态成员变量和静态方法是不好的做法吗 不 我一点也不这么认为 拥有一个充满实例方法的类是更糟糕的做法 而这些实例方法实际上并不依赖于特定实例 使它们静
  • int b=0,a=1;b=++a+++a; b 的值是多少?它的计算方法是什么? [复制]

    这个问题在这里已经有答案了 int main int b 0 a 1 initialize a and b b a a calculate assign the value of b print f d b return 0 b 的值是多少
  • CMake不知道Qt4 qmake在哪里

    我正在使用 Debian 操作系统 我试图指出 cmake 我的 Qt4 在哪里 我尝试构建 qjson 库及其 CMakeLists txt http pastebin com fKNp0Qgy http pastebin com fKN
  • 如何使用 os.listdir 仅选择一种文件类型?

    连接同一图像的 10 个条带后 我想将它们转换为反射率 然后将它们除以 10 000 尽管如此 我的文件夹中有两种类型的文件 但我只想将代码应用于 my img 文件而不是 hdr 您知道我如何使用 os listdir 进行此选择吗 我的
  • Jenkins 多配置项目处理并发设备使用

    Case 我有一个詹金斯奴隶女巫在移动设备 android ios 上运行葫芦测试 为了区分测试在哪些机器 iOS 的 mac 或 Android 的 Linux 上运行 我还使用Throttle 并发构建插件 通过这种方式 我可以区分设备