Вызов файла .bat из определенного места с помощью CCNET

Я настроил Sonar и хочу запустить анализ кода как часть моей ночной сборки.

Я настроил ночную сборку, но у меня возникли проблемы с запуском сонара.

Чтобы запустить анализ кода, я хочу перейти к созданной папке с именем \BuildAssets внутри основной папки решения. Чтобы запустить анализ кода вручную, я бы открыл командную строку в \BuildAssets и запустил: %SONAR_RUNNER_HOME%\Bin\sonar-runner.bat

Как мне настроить это в CCNET?

Я пробовал:

<exec> 
  <executable>%SONAR_RUNNER_HOME%\bin\sonar-runner.bat</executable>
  <baseDirectory>BuildAssets</baseDirectory>
  <buildTimeoutSeconds>$(slowBuildTimeout)</buildTimeoutSeconds>
</exec>

но это не работает, потому что он пытается запустить c:\cc\myBuild\code\BuildAssets\%SONAR_RUNNER_HOME%\bin\sonar-runner.bat

Я также пробовал:

<exec> 
  <executable>cmd</executable>
  <baseDirectory>BuildAssets</baseDirectory>
  <buildArgs>%SONAR_RUNNER_HOME%\bin\sonar-runner</buildArgs>
  <buildTimeoutSeconds>$(slowBuildTimeout)</buildTimeoutSeconds>
</exec>

но это, похоже, тоже ничего не делает. Я уверен, что это довольно просто, но я плохо разбираюсь в конфигурации CCNET.


person Fermin    schedule 05.03.2012    source источник


Ответы (2)


Мне не хватало /C из элемента аргументов сборки, поэтому я работал с этим:

<exec> 
  <executable>c:\Windows\System32\cmd.exe</executable>
  <baseDirectory>BuildAssets</baseDirectory>
  <buildArgs>/C %SONAR_RUNNER_HOME%\bin\sonar-runner</buildArgs>
  <buildTimeoutSeconds>$(slowBuildTimeout)</buildTimeoutSeconds>
</exec>
person Fermin    schedule 07.03.2012

Я полагаю, что SONAR_RUNNER_HOME - это переменная среды. Если это так, вы должны ссылаться на него следующим образом: $(SONAR_RUNNER_HOME).

person Yan Sklyarenko    schedule 05.03.2012