Установить переменную среды в Cruisecontrol - PullRequest
4 голосов
/ 13 декабря 2011

Как мне установить переменную окружения в Cruisecontrol?

Если я попытаюсь сделать это так:

<exec command="set PATH="
                workingdir="d:\AppLiteNew\Projects\"
                args = "%PATH%;D:\QtSDK\mingw\bin\"/> 

это не работает, все, что я получил, это:

[cc] 13 декабря 13:30:28 ExecBuilder - не удалось выполнить команду: установить PATH = с аргументами:% PATH%; D: \ QtSDK \ mingw \ bin \

Ответы [ 2 ]

7 голосов
/ 13 декабря 2011

Во-первых, вы используете exec , команда неверна

Команда: set, а ее аргумент должен быть PATH=%PATH%;D:\QtSDK\mingw\bin\

Это должно работать:

<exec command="set"
  workingdir="d:\AppLiteNew\Projects\"
  args = "PATH=%PATH%;D:\QtSDK\mingw\bin\"/> 

Во-вторых, это не будет иметь эффекта

Заданный вами путь будет доступен только для оболочки / команды, которая выполняется путем вызова exec. После вызова он не будет доступен для дальнейших команд /executions.
Вы не указали, какой у вас вариант использования или где вам нужна переменная, поэтому я могу только догадываться, что вы могли бы сделать. Вы можете сделать следующее:

  1. Установить путь непосредственно в Windows, для всего (если это нормально)
  2. Отредактируйте командный файл, который запускает круиз-контроль и установите там ПУТЬ
  3. Создайте командный файл для команды, которая нуждается в ПУТИ, и укажите ПУТЬ там.
  4. Некоторые ant-задачи позволяют указывать для них переменные окружения
1 голос
/ 04 марта 2013

В CruiseControl.net вы можете установить их в конфигурации задачи. Они идут в блоке среды:

<environment>
    <variable name="MyVar2" value="Var2Value" />
</environment>

Вот полный пример:

<msbuild>
    <executable>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe</executable>
    <workingDirectory>C:\dev\ccnet</workingDirectory>
    <projectFile>CCNet.sln</projectFile>
    <buildArgs>/p:Configuration=Debug /v:diag</buildArgs>
    <targets>Build;Test</targets>
    <timeout>900</timeout>
    <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
    <environment>
        <variable name="MyVar2" value="Var2Value" />
    </environment>
 </msbuild>
...