通过 windows 命令行更新 CCRC 视图并将其集成到 Jenkins 中

Update CCRC view via windows command line and integrate it in Jenkins

我一直在寻找一种通过 windows 命令行以非交互方式更新我的 CCRC 视图的方法。

我正在使用 Jenkins,但今天还没有适用于 CCRC 的插件 (https://issues.jenkins-ci.org/browse/JENKINS-5192), so I'm trying, as a first step, to auto update my CCRC view via batch script. I installed Managed Script Plugin (https://wiki.jenkins-ci.org/display/JENKINS/Managed+Script+Plugin) 并编写了这个简单的脚本:

cd C:\Views\PathToMyViewVOB
rcleartool login -lname MyUser -server MyServer.com -password MyPass
rcleartool update

使用这个脚本,在第一次执行时,登录工作正常,但是,我不知道为什么,Jenkins 忽略了更新命令。在以下执行中,它显示此错误:

CRCLI2014E You have already logged on the server
"MyServer.com".
Build step 'Execute managed windows batch' marked build as failure
Finished: FAILURE

我也尝试过使用其他命令,认为您可以使用 rcleartool 的任何子命令传递我的凭据:

cd C:\Views\PathToMyViewVOB
rcleartool update -username MyUser -password MyPass -server MyServer.com

现在的错误是:

CRCLI2001E Unrecognized option: "-username".
Use: update [-print] [-ove/rwrite | -nove/rwrite | -ren/ame] [-pti/me][nombrep ...]
update -add/_loadrules [-print] [-ove/rwrite | -nove/rwrite | -ren/ame][-pti/me] nombrep [...]
Build step 'Execute managed windows batch' marked build as failure
Finished: FAILURE

我想过在一个脚本中检查我是否已经登录,如果没有,登录然后更新,如果是,只更新,然后继续编译,但我不知道怎么做。

有什么方法可以做我想做的事,自动更新 CCRC 吗?我总是可以手动完成,但是......你知道,它最好是非交互式的。

任何建议、意见或想法都会有所帮助。

这取决于您使用的 ClearCase 版本。
在 CC 8.0.1.9 之前,there is this bug 其中,在非交互模式下,IBM ClearCase rcleartool 在上一次登录失败时等待登录提示,而不是报告错误而不提示用户。

作为mentioned in this thread, you need to make sure CCSHARED & JAVA_HOME are properly in the rcleartool config.ini, as in here:

CCSHARED=C:\Program Files (x86)\IBM\IMShared
JAVA_HOME=C:\Program Files (x86)\Java\jre7

这些路径仅为示例,可能与您的实际路径不同。
重点是:它们必须在 Jenkins 作业执行上下文中有效(在从机上)

OP Alavaros mentions :

only updating the version fixed the problem, now I do:

rcleartool update -lname MyUser -server MyServer -password MyPass

And works fine.

"rcleartool update" 被忽略,因为 rcleartool.bat 本身是一个批处理文件,因此您必须在批处理文件的每一行中使用 "call rcleartool -params args"。