Могу ли я использовать cygwin для написания сценария сборки hudson? - PullRequest
1 голос
/ 09 апреля 2009

Я пытался выполнить следующее:

#!C:\cygwin\bin\bash.exe
ls ${WORKSPACE}

Но это не находит ls (даже если он находится на пути к Windows). Есть ли способ настроить это?

ОБНОВЛЕНИЕ : Другими словами, я хочу иметь возможность настроить шаг сборки, который использует Cygwin Bash вместо Windows CMD, как эта страница показывает вам, как делать с Python .

Ответы [ 7 ]

5 голосов
/ 09 апреля 2009

Итак, поместите каталог cygwin bin в PATH.

Если вы не знаете, как это сделать (Control Panel -> System -> Advanced -> Environment Variables), см .: http://support.microsoft.com/kb/310519

4 голосов
/ 09 апреля 2009

Этот shell-скрипт имеет две ошибки: строка хеш-взрыва должна быть "#! / Bin / bash", а $ {WORKSPACE} не является переменной оболочки. У Hudson есть несколько собственных переменных, которые раскрываются в командах, которые вы указываете для запуска (т.е. когда вы добавляете команды в веб-интерфейс).

Если вы хотите запустить шаг сборки Hudson в командной строке Cygwin, вам необходимо выяснить, какая команда запускается Hudson и в каком каталоге.

Чтобы дать более конкретный ответ, вам нужно показать нам, как настроен ваш проект и какие шаги вы хотите выполнить отдельно.

2 голосов
/ 01 мая 2009

Если папка bin Cygwin находится на вашем пути, у меня работает следующее:

#!/bin/sh
ls ${WORKSPACE}

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

1 голос
/ 09 апреля 2009

Еще одна вещь, которая, кажется, работает - это использовать:

#!C:\cygwin\bin\bash.exe
export PATH=$PATH:/usr/bin
ls

Но было бы неплохо не изменять путь для каждого сценария.

1 голос
/ 09 апреля 2009

вы можете попробовать указать полный путь к ls

/cygdrive/c/cygwin/bin/ls
0 голосов
/ 11 декабря 2013

Вам нужно будет передать параметр --login (он же -l) в bash, чтобы он получал /etc/profile в Cygwin и правильно устанавливал переменную PATH. Это приведет к тому, что текущий каталог будет заменен на «home» по умолчанию, но вы можете установить переменную окружения CHERE_INVOKING в 1 перед запуском bash -l, и он останется в текущем каталоге, если вам нужно сохранить его.

0 голосов
/ 01 мая 2009

Вы думали о силовой корпус ? как бы мне ни нравился cygwin, он всегда был немного ненадежным, PowerShell - это полноценная полнофункциональная оболочка для Windows, другой вариант - Службы Windows для UNIX , он дает вам оболочку korn или c, не столь приятную, как Баш, но он выполняет свою работу

...