Я использую Hudson версии 1.324 для CI, и у меня есть пара проблем:
Окружающая обстановка:
- Windows Server 2008
- Powershell v1.0
- Hudson 1.324 работает как служба
- Плагин Hudson Powershell установлен
- Psake (также известный как Powershell Make / Rake, доступный на Github) 0.23 (все текущие / последние версии на момент этой первоначальной публикации)
У меня есть сценарий Powershell (PS), который работает для компиляции, запуска тестов NUnit и, в случае успеха, создания выходного файла 7z. Сценарий PS работает из командной строки как в моем локальном окне разработки, так и на сервере CI, на котором установлен Hudson.
1) Политика выполнения в Powershell.
Сначала я запустил консоль PS на сервере, запустил Set-ExecutionPolicy Unrestricted
, что позволяет запускать любой сценарий. (Да, я понимаю проблемы безопасности здесь, я пытаюсь заставить что-то работать, и Unrestricted должен устранить проблемы безопасности, чтобы я мог сосредоточиться на других проблемах.)
[Это сработало и позволило мне вчера запустить сценарий сборки PS из Hudson. Затем я столкнулся с другой проблемой, но мы обсудим ее подробнее в пункте №2.]
Как только Хадсон смог запустить сценарий PS, он пожаловался на следующую ошибку:
"C: \ Windows \ system32 \ WindowsPowerShell \ v1.0 \ powershell" & 'OzSystems.Tools \ psake \ psake.ps1' '. \ Oz-build.ps1' "Термин 'OzSystems.Tools \ psake \ psake.ps1 'не распознается как командлет, функция, действующая программа или файл сценария. Проверьте термин и попробуйте еще раз. В строке: 1 символ: 2 + & ‹------------------------------------' OzSystems.Tools \ psake \ psake.ps1 '' . \ oz-build.ps1 '"
Используя ту же командную строку, я могу вручную успешно выполнить сценарий PS из командной строки. Однако Хадсон не может заставить PS сделать то же самое. Посмотрев дополнительную документацию PS, я также попробовал это:
"& 'OzSystems.Tools\psake\psake.ps1' '.\oz-build.ps1'"
и получил аналогичную ошибку. Похоже, что документации для плагина Powershell для Hudson нет. Я просмотрел все файлы плагинов Powershell и не нашел ничего, что можно было бы настроить. Я не могу найти файл журнала для Хадсона, чтобы получить дополнительную информацию.
Может ли кто-нибудь помочь мне пройти через это?
2) Вчера я боролся с №1. Я пришел в это AM и попытался снова копаться после перезапуска сервера / службы Hudson, и теперь кажется, что ExecutionPolicy был сброшен на Restricted. Я сделал то, что вчера сработало, открыл консоль PS и Set-ExecutionPolicy
на Unrestricted
. В консоли PS отображается Unrestricted
, но Хадсон говорит, что у него нет прав на выполнение сценариев PS. Я снова открыл новую консоль PS и подтвердил, что ExecutionPolicy
все еще Unrestriced
- это так. Но Хадсон, очевидно, не знает об этом изменении. Повторный перезапуск службы Hudson не меняет взгляда Hudson на политику.
Кто-нибудь знает, что здесь происходит?
Спасибо, Дерек