Может ли Hudson экспортировать / устанавливать / использовать мои переменные окружения для задачи msbuild? - PullRequest
2 голосов
/ 17 июля 2009

Я использую Hudson в Vista и звоню в MSBuild for C ++ (VS 2008).

Мне не удалось найти способ экспорта существующих переменных среды пользователя или системы.

Я могу вручную установить переменные env через Hudson, но я предпочитаю этого не делать - я хочу использовать уже установленные. Есть ли способ сделать это?

По сути, я хочу иметь возможность выбирать из списка env-переменных и указывать hudson отображать их / экспортировать в процессы / рабочие пространства, которые он порождает.

Хадсон работает как сервис.

Ответы [ 6 ]

3 голосов
/ 17 июля 2009

Вы можете попробовать плагин msbuild , чтобы избежать проблемы настройки всей среды. Вам просто нужно указать плагин в месте расположения msbuild, и все будет работать оттуда.

2 голосов
/ 20 июля 2009

Я только что провел быстрое тестирование, загрузив последнюю версию Hudson (1.316) и создав работу, которая запускается просто «set» (если вы не знакомы с этим, при запуске set отдельно в консоли перечисляются все переменные среды в текущей области видимости).

Вот вывод консоли: все переменные среды - пользовательские и системные, а также переменные, определенные самим Гудзоном, чтобы сделать метаданные Хадсона доступными для заданий:

Started by user anonymous
[workspace] $ cmd /c call D:\Temp\hudson5023210513071219278.bat

C:\Documents and Settings\jack\.hudson\jobs\Environment Variable Test\workspace>set
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\jack\Application Data
BUILD_ID=2009-07-19_22-59-42
BUILD_NUMBER=1
BUILD_TAG=hudson-Environment Variable Test-1
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=BEEBLEBROX
ComSpec=C:\WINNT\system32\cmd.exe
EXECUTOR_NUMBER=0
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\jack
HUDSON_COOKIE=a0bc798a-20ab-40bc-aad6-f4a331567999
HUDSON_HOME=C:\Documents and Settings\jack\.hudson
JAVA_HOME=c:\program files\java\jdk1.6.0
JOB_NAME=Environment Variable Test
LOGONSERVER=\\BEEBLEBROX
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
Os2LibPath=C:\WINNT\system32\os2\dll;...blah...blah...blah...
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 15 Stepping 0, AuthenticAMD
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0f00
ProgramFiles=C:\Program Files
PROMPT=$P$G
QTJAVA=C:\Program Files\Java\jre1.6.0\lib\ext\QTJava.zip
SystemDrive=C:
SystemRoot=C:\WINNT
TEMP=D:\Temp
TMP=D:\Temp
USERDOMAIN=BEEBLEBROX
USERNAME=jack
USERPROFILE=C:\Documents and Settings\jack
windir=C:\WINNT
WORKSPACE=C:\Documents and Settings\jack\.hudson\jobs\Environment Variable Test\workspace

C:\Documents and Settings\jack\.hudson\jobs\Environment Variable Test\workspace>exit 0 
Finished: SUCCESS

Я подозреваю, что ваши переменные просто не определены в среде владельца процесса Гудзона (или что-то в этом роде, нам потребуется дополнительная информация о настройке вашего Гудзона, чтобы действительно знать).


Редактировать: еще одно замечание, вы можете взглянуть на / systemInfo, чтобы увидеть все системные свойства и переменные среды, доступные для Hudson. Имейте в виду, что когда Хадсон создает новый процесс для выполнения работы, все переменные среды должны быть доступны для дочернего процесса, если только Хадсон не удаляет их явно вначале (я считаю, что это скорее природа операционной системы, чем Java). Поэтому, если вы не увидите какой-либо документации, детализирующей удаление определенных переменных среды (и если да, то я уверен, что у разработчиков будет причина для этого), я сначала проверю, доступны ли переменные Хадсону в первую очередь. .

2 голосов
/ 17 июля 2009

Получите то, что вам нужно отсюда:

% comspec% / k "" h: \ Program Files \ Microsoft Visual Studio 9.0 \ VC \ vcvarsall.bat "" x86

1 голос
/ 21 января 2010

У меня такая же проблема. Я использую плагин MSBuild, мой файл проекта msbuild:

<? Xml version = "1.0" encoding = "Windows-1252"?>
http://schemas.microsoft.com/developer/msbuild/2003"&gt;






Этот файл работает в консоли, в выводе hudson:

Target FooCompilation: ВКЛЮЧИТЬ: «C: \ Program Files \ Microsoft SDKs \ Windows \ v6.1 \ Включить» LIB: "C: \ Program Files \ Microsoft SDKs \ Windows \ v6.1 \ Lib" ПУТЬ: "C: \ Program Files \ Microsoft SDKs \ Windows \ v6.1 \ Bin"; C: \ WINDOWS \ system32; C: \ WINDOWS; C: \ WINDOWS \ System32 \ Wbem; c: \ Program Files \ Microsoft SQL Server \ 90 \ Tools \ Binn \ __________________________________________________

Но моя сборка не удалась, потому что ВКЛЮЧИТЬ путь, а не пройти бросить MSBuild Task ...

0 голосов
/ 04 июня 2012

Тим

Hudson экспортирует многие параметры в качестве переменных среды, например:

BUILD_ID=2012-03-19_12-43-52
BUILD_NUMBER=74
HUDSON_HOME=C:\Documents and Settings\john\.hudson

Начиная с Hudson v2.0.1, у вас также есть пользователь Hudson, который инициировал сборку:

HUDSON_USER=dan

Полный список переменных среды находится здесь: Переменные среды Hudson Set

Если вы хотите передать другие параметры своей работе, лучше всего использовать Parameterized Build от Hudson

Просто обратите внимание, что для Windows вы должны использовать соглашение "% MY_PARAM% " (вместо этого, если " $ MY_PARAM " в Unix).

0 голосов
/ 17 июля 2009

Сборочные и пакетные файлы - это две разные вещи, пакетный файл съедает все ошибки, сгенерированные при сборке, так же, как и при отправке входных данных в пакетный файл.

...