我有一个cmake示例项目,我想在运行在Ubuntu 15.10上的Jenkins上构建。我已经安装:CMake,C++和Jenkins /持续集成
https://wiki.jenkins-ci.org/display/JENKINS/CMake+Plugin
而且创造了两个构建步骤:
- 运行cmake生成的生成文件
- 运行让所有从build目录
我工作得很好:
[build] $ cmake -G "Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug /var/lib/jenkins/workspace/cmake-test/cmake-gtest/src
-- Configuring done
-- Generating done
-- Build files have been written to: /var/lib/jenkins/workspace/cmake-test/cmake-gtest/build
[build] $ /usr/bin/make
[ 4%] Built target libfoo
[ 9%] Built target libbar
[ 14%] Built target myApp
[ 52%] Built target gmock
[ 90%] Built target gtest
[100%] Built target testfoo
[cmake-test] $ /bin/sh -xe /tmp/hudson1792271459427590561.sh
+ cd cmake-gtest/build
+ make all
[ 4%] Built target libfoo
[ 9%] Built target libbar
[ 14%] Built target myApp
[ 52%] Built target gmock
[ 90%] Built target gtest
[100%] Built target testfoo
Finished: SUCCESS
但是,这是在CI /詹金斯设置使用cmake建议的方法?
目前我的cmake/Jenkins版本将在每次推送; 1)生成makefile,2)构建项目。
我有点担心,第一步骤1)生成Makefile会吃了建造时间和它并没有真正似乎最佳做每个推此步骤。特别是因为我不希望更改文件CMakeLists.txt,但是当它们更改新生成的文件时当然应该使用。
的是,我只是习惯或有我错过了什么上面的方法常见的做法?
是否“生成生成文件”采取足够的时间去担心?虽然它可能不会经常变化,但是在发生变化时单独采取措施或搞乱构建真的不是一个好的解决方案...... –
是的,这也是我关心的问题,安全性高于抱歉,解决方案是使当它增长时,肯定会将我的应用程序分解成更小的更快的部分。回顾上面的两个构建步骤,1)cmake/generate,2)运行make all是否有作为代码生成步骤的一部分来做到这一点?还是他们是完全独立的,应该像这样对待? – u123
我不太清楚你在问什么。我的态度总的来说就是“采用足以解决当前问题的最简单的解决方案”,而不是让事情复杂化,直到你确实有充分的理由。我在我的Jenkins系统上运行了三个不同的工作(在家中):“使用g ++编译+运行所有测试”,“使用g ++编译+运行所有测试” - 每15分钟检查git仓库中的新提交,是下载LLVM的版本和我的代码,并基于项目中的构建脚本一起构建它 - 每晚一次。 –