Обновите представление CCRC через командную строку Windows и интегрируйте его в Jenkins
Я искал способ обновить мое представление CCRC через командную строку Windows неинтерактивным способом.
Я использую Jenkins, и сегодня еще нет подключаемого модуля для CCRC ( https://issues.jenkins-ci.org/browse/JENKINS-5192), поэтому в качестве первого шага я пытаюсь выполнить автоматическое обновление мой CCRC вид через пакетный скрипт. Я установил 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
С этим сценарием при первом выполнении вход в систему работает корректно, но я не знаю почему, Дженкинс игнорирует команду обновления. В следующих выполнениях это показывает эту ошибку:
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? Я всегда могу сделать это вручную, но... знаешь, лучше неинтерактивно.
Любые предложения, советы или идеи будут полезны.
2 ответа
Это зависит от версии ClearCase, которую вы используете.
До CC 8.0.1.9 существует эта ошибка, когда в неинтерактивном режиме IBM ClearCase rcleartool
ожидает сообщения о входе в систему, если предыдущий вход не выполнен, вместо сообщения об ошибке и не запрашивает пользователя.
Как уже упоминалось в этой теме, вы должны убедиться, что CCSHARED & JAVA_HOME правильно находятся в rcleartool
config.ini
как здесь:
CCSHARED=C:\Program Files (x86)\IBM\IMShared
JAVA_HOME=C:\Program Files (x86)\Java\jre7
Эти пути приведены только в качестве примера и могут отличаться от вашего фактического пути.
Дело в том, что они должны быть действительными в контексте выполнения задания Jenkins (на подчиненном устройстве).
Alavaros упоминает в комментариях:
только обновление версии исправило проблему, теперь я делаю:
rcleartool update -lname MyUser -server MyServer -password MyPass
И работает отлично.
"Обновление rcleartool" игнорируется, потому что сам rcleartool.bat является пакетным файлом, поэтому вам нужно использовать "вызов rcleartool -params args" в каждой строке вашего пакетного файла.