为什么Jenkins有两种工作,包括多配置项目和自由式项目项目?我读到某个地方,一旦你选择其中一个,你就无法转换到另一个(很容易).为什么我不总是选择多配置项目以便为将来的更改安全?
我想在Windows和Unix(以及其他平台)上为项目构建设置构建.我发现了这个问题),问同样的问题,但我没有得到答案.为什么我需要三个矩阵项目(而不是三个自由式项目),每个平台一个?为什么我不能将它们全部保存在一个矩阵中,平台AND(例如)一轴上的gcc版本和另一个上的(我的)软件版本?
我也阅读了这篇博客文章,但它在同一台机器上构建了所有内容,只有不同的Python版本.
简而言之:大多数人如何配置针对许多不同平台的多配置项目?
我在Jenkins有很多自由式工作,我想转换为多配置工作,这样我就可以在一个工作下跨多个平台构建.这些作业指定了相当多的构建参数,我不想通过创建新的多配置作业来再次手动设置它们.目前,每项工作都将其构建限制在我们一直在构建的平台上,而我看到的唯一其他选项是克隆现有作业并将限制更改为新平台.这并不理想,因为我需要维持2个工作,唯一的区别是目标平台.
我没有看到通过UI做到这一点的方法,但想知道是否有另一种方式.
我需要构建和测试多种配置:linux,osx和solaris.我有标记为"linux","osx"和"solaris"的从节点.在每个配置中,我想(a)构建(b)运行冒烟测试(c)如果烟雾测试通过,然后运行完整测试,或许更多.
我认为多配置作业可能就是答案,因此我设置了一个多配置构建作业,并在每个OS上启动并发构建.构建作业将触发下游冒烟测试构建,从而触发完整测试作业.
我遇到了以下问题
如果其中一个配置失败,则作业整体失败,并且Jenkins不会触发任何下游作业(例如,如果solaris构建失败,Jenkins将不会运行冒烟测试或osx和linux的完整测试).
solaris构建需要大约两倍的时间(大约一小时),我更喜欢linux和osx冒烟测试,而不是等待solaris构建完成.
这是否意味着我留下了手工制作三个工作流程,并将它们置于"全部开始"的工作(即创建和手工链接以下工作)?
build-linux smoke-test-linux full-test-linux
build-osx smoke-test-osx full-test-osx
build-solaris smoke-test-solaris full-test-solaris
Run Code Online (Sandbox Code Playgroud)
我错过了一些明显的东西吗
我与Jenkins和Sauce Labs配置了Magento测试自动化框架(MTAF),一切运行正常。但是,在构建多配置项目时,我从Jenkins作业配置的浏览器列表中选择了另外两个浏览器以并行执行。
进行构建时,它是从MTAF配置文件(browser.yaml)中获取浏览器,而不是从Jenkins的作业配置中选择浏览器。
有什么方法可以从Jenkins而非MTAF的配置文件执行浏览器吗?
Cmake新手在这里,我目前正在尝试将仅使用单一配置开发的cmake项目转换为可以生成visual studio文件的多配置项目.
我无法解决的问题是,在cmake项目中存在依赖于变量CMAKE_BUILD_TYPE的逻辑,例如:
set(ENABLE_DEBUG TRUE)
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(ENABLE_DEBUG FALSE)
)
Run Code Online (Sandbox Code Playgroud)
由于对于多配置cmake,CMAKE_BUILD_TYPE为空,这种方式不起作用.然后变量ENABLE_DEBUG在cmake项目中用于以下内容:
案例1:添加库仅调试配置
if(ENABLE_DEBUG)
list(APPEND LIB_SRC src/lib_debug.cpp)
endif()
add_library(LIB OBJECT LIB_SRC)
Run Code Online (Sandbox Code Playgroud)
情况2:将预处理程序标志添加到仅调试配置
if(ENABLE_DEBUG)
add_definitions(...)
endif()
Run Code Online (Sandbox Code Playgroud)
所以我想知道是否有人为上述一个或两个案例都有一个解决办法,可以用于多配置cmake项目,即我可以指定库添加和预处理器标志,而不依赖于CMAKE_BUILD_TYPE变量.或者更好的是,如果有一个特定于配置的方式设置ENABLE_DEBUG而不依赖于CMAKE_BUILD_TYPE变量?
我有一个多配置项目设置来运行FF和IE selenium测试.但是,它没有汇总测试结果.
如果我查看项目页面,我会看到:

如果我进入特定的构建,我会看到:

但是,如果我点击其中一个特定的配置名称,我会看到:

有没有办法让这些结果聚合?(我已选中聚合下游结果项目配置复选框)
我们使用 Jenkins 2.60.2 和 CMake 3.9.1 来自动化我们的构建系统。这对于多个版本的构建工具、架构和调试/发布目标都适用(如果所有配置都已构建并安装,那么调试和发布都适用)。
使用find_package ()的仅调试配置通常会在发现时忽略CMAKE_BUILD_TYPE。脚本在内部搜索文件和库并将位置存储在变量中。在脚本末尾,将扫描变量中的_NOTFOUND字符串,这是在所有引用路径/提示中未找到文件或库的结果。因此,如果找不到 Release 库,find_package ()基本上会失败,并将整个包标记为未正确安装,即使构建仅对Debug目标严格感兴趣。
通常,XXXConfig.cmake文件使用对find_package_handle_standard_args (.. PATH_TO_LIB) 的调用来扫描库的路径变量中的_NOTFOUND字符串。这些变量通常通过早期调用find_library (PATH_TO_LIB libname ..)设置为_NOTFOUND。有关更多信息,我参考 CMake 文档。
用户确实可以用“debug”标记调试库并用“optimized”发布库,但这似乎在库发现期间没有帮助,并且仅在链接期间使用。
有人知道如何正确处理这个问题吗?
亲切的问候
我正在Jenkins 中进行多配置作业(Regression_L1),其任务是运行 2 种测试(test1 和 test2)。在多配置作业中,它会触发一个执行程序作业 ( Regression_executor ) 来运行所选测试的脚本。该Regression_L1工作仅限于在运行matrix_service_jobs节点,而矩阵的工作是在从节点上运行custom_matrix_service_jobs节点。该Regression_executor工作仅限于在特定标签(RL1_Test_Machine)远程机器上运行。
我的目标是测试开发人员的自定义构建。所以我为作业添加了一个文件参数(配置 - 文件位置:CUSTOMBUILD/mybuild.zip)。问题是如何访问上传的文件?
一些重要信息:
/home/regressionexec//var/work/matrix_service_jobs/Regression_L1/var/work/workspace_user_matrix/workspace/Regression_L1/TEST_PHASE/test1/label/custom_matrix_service_jobs/和/var/work/workspace_user_matrix/workspace/Regression_L1/TEST_PHASE/test2/label/custom_matrix_service_jobs/var/work/jenkins_home我不知道在哪里可以找到上传的文件,所以我搜索了 ung linux find。结果是:
/var/work/jenkins_home/Regression_L1/TEST_PHASE/test2/label/custom_matrix_service_jobs/builds/${BUILD_NUMBER}/fileParameters/CUSTOMBUILD/mybuild.zip。
如何将其复制到执行测试脚本的从节点?