我怎么能让詹金斯做以下事情?
从 SVN 检出/ 从 SVN 取出后, 使用 CMake 建立调试和释放配置, 而不重复配置任务 。
我怎么能让詹金斯做以下事情?
从 SVN 检出/ 从 SVN 取出后, 使用 CMake 建立调试和释放配置, 而不重复配置任务 。
在使用Jenkins一段时间后,我发现如果你想重新使用源目录,你应该尽可能少地使用工作。
Jenkins的默认设置是,每栋建筑使用不同的目录作为工作空间。 这意味着每栋建筑都要进行一次完整的 SVN 检查。 这需要永远的时间 。
如果您想要为每栋建筑使用相同的源目录, 您就必须担心同步: 一次只建一个。 据我所知, Jenkins 没有内置同步手段。 唯一的办法是只使用一个执行器。 即使这样, 您也无法控制执行者选择下一个任务的方式 。
换句话说, “ SVN 更新” 的触发程序是“ 建设 ” 。 有人开始“ SVN 更新 #33 ”, 这应该触发“ 建设 # 33 ” 。 但是, 如果, Jenkins “ Polll SCM” 的功能性时间表“ SVN 更新” 是 # 34 。 与此同时,我还没有找到一个方法告诉它“ 建设 # 33 ” 必须运行在“ SVN 更新 # 34 ” 之前。 因此,你可能会在“ 建设 # 33” 之前出现“ SVN 更新 # 34 ”, 而一切都会失败。 除非您手动禁用投票工作, 否则提醒您自己, 之后当然可以重新启用它 。
无论如何。在使用詹金斯两年后, 我将答案改为: 永远不要使用共享资源( 如源目录) 的多重工作, 并且把所有逻辑都烤成空格脚本( 用于循环配置 ) 。
我花了好一阵子才弄明白的 我是如何做到的
在构建下添加以下 Windows 批量命令, 用于清理构建目录 。 出于某种原因, CMake 不提供这样做的方法 。
cd c:
rmdir /S /Q build
mkdir build
cd build
cmake --version
rem optionally: svn info c:src
cmake -G "Visual Studio 10" c:src
创建另一个任务“ 构建 ”, 这次让它成为“ 多配置” 任务。 此任务将为每个配置运行( 调试/ 释放) 。
在配置矩阵下添加一个轴“配置 ”, 值为“ 调试释放 ” (whitespace = separator ) 。 不幸的是, Jenkins 的 CMake 构建器插件不使用多配置任务 。 我们甚至不能使用 cMake - 建设, 因为它总是构建调试配置 。 要构建, 我们必须使用另外的批量脚本 :
cd c:uild
call "%ProgramFiles(x86)%Microsoft Visual Studio 10.0VCvcvarsall.bat"
msbuild ALL_BUILD.vcxproj /verbosity:minimal /maxcpucount:1 /property:Configuration=%configuration%
如果您想要构建整个解决方案, 请指定. sln 文件, 而不是 ALL_ BUILD. vcxproj。 如果您只想要构建一个特定工程, 请使用
msbuild <solution>.sln /target:<project>
使用 < a href=> https://wiki.jenkins- ci. org/ display/ JENKINS/building+a+matrix+project" rel= "noreferr" > Jenkins 矩阵任务 。 定义轴中的轴之一为 building_mode , 值 Debug 和 releare 。 然后运行 CMake, 为您将要使用的编译工具( XCode, gcc, 视觉Studio, et.) 创建两个配置。 您可以使用 building_mode , 如它是一个环境变量, 并通过它来构建实际编译的步骤 。
当使用视觉工作室生成器时, 您可以将构建的配置传送到 cmake -- building
- 命令 :
cmake --build . --config Release
cmake --build . --config Debug
亦见"http://www.cmake.org/cmake/help/v2.8.12/cmake.html#opt%3a-builddir" rel=“不跟随”>CMake docs 。
I am trying to find out the difference between difference service account types. I tumbled upon this question. The answer was because it has powerful access to local resources, and Network Service ...
Does anyone know how to programatically detect that a Windows server is part of a cluster? Further, is it possible to detect that the server is the active or passive node? [Edit] And detect it from ...
I ve read Get File Icon used by Shell and the other similar posts - and already use SHFileInfo to get the associated icon for any given extension, and that works great. However, Outlook uses ".msg" ...
How can I create an empty file at the DOS/Windows command-line? I tried: copy nul > file.txt But it always displays that a file was copied. Is there another method in the standard cmd? It should ...
I know about the GetLastInputInfo method but that would only give me the duration since last user input - keyboard or mouse. If a user input was last received 10 minutes ago, that wouldn t mean the ...
My application creates a thread and that runs in the background all the time. I can only terminate the thread manually, not from within the thread callback function. At the moment I am using ...
Yes, I know, the archive bit is evil. That being said, is there support for querying it with find , and modifying it with chmod ? My googling has turned up nothing......
I built a Java application that is delivered on USB sticks. To ensure compatibility, I ship an appropriate JVM on the sticks. I made an EXE that simply invokes this JVM with the application jar. Now ...