Обновите представление CCRC через командную строку Windows и интегрируйте его в Jenkins.

Я искал способ обновить представление CCRC через командную строку Windows неинтерактивным способом.

Я использую Jenkins, и на сегодняшний день еще нет плагина для CCRC (https://issues.jenkins-ci.org/browse/JENKINS-5192), поэтому в качестве первого шага я пытаюсь автоматически обновить представление CCRC с помощью пакетного сценария. Я установил подключаемый модуль управляемого сценария (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 игнорирует команду 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? Я всегда могу сделать это вручную, но... знаешь, лучше не интерактивно.

Любые предложения, советы или идеи будут полезны.


person Alavaros    schedule 16.12.2015    source источник


Ответы (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 (на ведомом устройстве).

В OP Alavaros упоминается в комментариях:

только обновление версии решило проблему, теперь делаю:

rcleartool update -lname MyUser -server MyServer -password MyPass

И работает нормально.

person VonC    schedule 16.12.2015
comment
Привет VonC, сейчас я использую CC 8.0.1.10. Что касается config.ini, я не могу его найти, где он должен быть на машине с Windows? Спасибо - person Alavaros; 18.12.2015
comment
@Alavaros config.ini является частью CCRCLI.zip, упомянутого в www -01.ibm.com/support/docview.wss?uid=swg24021929 (но для CC до 8.0.0.1: я не знаю о более поздних версиях CC) - person VonC; 18.12.2015
comment
Привет @VonC, только обновление версии решило проблему, теперь я делаю rcleartool update -lname MyUser -server MyServer -password MyPass и работает нормально. Спасибо! - person Alavaros; 21.12.2015
comment
@Алаварос Отлично! Я включил ваш комментарий в ответ для большей наглядности. - person VonC; 21.12.2015

«обновление rcleartool» игнорируется, потому что rcleartool.bat сам по себе является пакетным файлом, поэтому вам нужно использовать «call rcleartool -params args» в каждой строке вашего пакетного файла.

person zhoubig    schedule 05.06.2018