我正在建立一个正在构建RESTful HTTP服务的团队.我们在设置Jenkins CI作业时遇到问题,该作业将构建服务,在后台运行,执行一些测试,然后终止服务器.
我们现在有一些类似的工作,但它不可靠.我们使用3个构建步骤:
第一个构建步骤是Execute Shell使用以下命令的步骤:
npm install
npm test
node server.js ./test-config.json &
Run Code Online (Sandbox Code Playgroud)
其次,我们做了一个Invoke Maven 3指向测试的步骤pom.xml.
第三,我们开始Invoke Standalone Sonar Analysis进行静态代码分析.
这主要是有效的,但是我们依靠Jenkins的ProcessTreeKiller来在作业完成后停止服务.我们总是收到警告:Process leaked file descriptors. See
http://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+buildfor
more information
不幸的是,我们有过这样的情况:服务很快终止(在测试完成之前)或服务根本没有终止(导致后续构建失败,因为端口已经在使用中).
所以我们需要更可靠的东西.
我们尝试设置一个shell脚本,它处理启动服务,运行maven,终止服务,然后输出退出代码.但是这没有用,因为mvn命令行上没有命令.我们的Jenkins有多个maven版本(也是jdks),我不知道他们住在奴隶的哪个地方,或者如何在不使用Invoke Maven 3构建步骤的情况下使用它们.
我们已经玩弄了一些想法来解决这个问题,但希望得到其他可能解决Jenkins类似问题的指导.
如果Jenkins有一个"Post-build action"可以让你运行一个清理脚本,那就太好了.或者,如果它有一个"执行后台进程"构建步骤,它会在构建结束时终止后台项目.但我找不到那样的东西.
有没有人设法让Jenkins像这样远程做任何事情?
我做了很多搜索,但找不到这个问题的答案.如果它是重复的道歉.
我想知道git在现有svn结账时初始化回购(用于本地使用)是否有任何问题,但不使用git-svn.
这是我的情景:
svn并且不熟悉git.git; 我对它的熟悉程度并不像我一样熟悉svn.git(如分支,存储等).git-svn(虽然我计划将来).svn专门使用客户端与存储库进行交互.(所以我清楚地了解我在做什么,svn并没有得到任何奇怪的互动).我在想,我会永远做svn update并commit从git主分支.当我处理功能时,我会与主人合并.
有没人试过这个?有任何令人讨厌的缺点或副作用吗?提示?