Почему я не могу разархивировать в PowerShell агент TeamCity? - PullRequest
3 голосов
/ 17 февраля 2012

У меня есть скрипт, который распаковывает пакет MVC, минимизирует все файлы CSS и js, а также разархивирует его.Он отлично работает на моей машине и на сервере CI в качестве администратора или учетной записи TeamCity.Когда TeamCity его запустит и запустит, скрипт выдаст все ожидаемые результаты, не сообщит об ошибке, но никогда не разархивирует файл.

write-host "creating shell object"
$shell_app=new-object -com shell.application
write-host "creating zip file"
$zip_file = $shell_app.namespace("C:\temp\PokerLeagueWebSite.zip")
write-host "setting folder to unzip to"
$destination = $shell_app.namespace("C:\temp\zy98")
write-host "about to copy files from zip"
$destination.Copyhere($zip_file.items(), 0x4)
write-host "finished"

Вот вывод из TeamCity:

[23:01:03]: Step 5/5: test ps1 file (Powershell)
[23:01:03]: [Step 5/5] Starting: C:\Windows\system32\cmd.exe /c
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -NonInteractive -File
C:\TeamCity\buildAgent\work\71e78d4c543e0594\Tools\test.ps1 && exit /b %ERRORLEVEL%
[23:01:03]: [Step 5/5] in directory: C:\TeamCity\buildAgent\work\71e78d4c543e0594
[23:01:03]: [Step 5/5] creating shell object
[23:01:03]: [Step 5/5] creating zip file
[23:01:03]: [Step 5/5] setting folder to unzip to
[23:01:03]: [Step 5/5] about to copy files from zip
[23:01:03]: [Step 5/5] finished
[23:01:03]: [Step 5/5] Process exited with code 0
[23:01:03]: Publishing internal artifacts
[23:01:03]: [Publishing internal artifacts] Sending build.finish.properties.gz file
[23:01:03]: Build finished

Если я запускаю точную команду на сервере в учетной записи TeamCity, она работает правильно:

C:\Windows\system32\cmd.exe /c C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -NonInteractive -File C:\TeamCity\buildAgent\work\71e78d4c543e0594\Tools\test.ps1 && exit /b %ERRORLEVEL%

Я могу только думать, что это либо что-то, что делает TeamCity, либо что-то связанное с фактомон работает как сервис, но я в тупике и не могу понять это.

Ответы [ 2 ]

3 голосов
/ 08 октября 2012

Я использовал ответ от "user1545905", но мне нужно было вручную перезапустить службу агента TeamCity после перезагрузки сервера. Вы можете предоставить пользователю службы агента TeamCity полный доступ к каталогу.

1 голос
/ 03 августа 2012

Я столкнулся с этим же вопросом вчера. Это как-то связано с разрешениями, хотя ошибок не было зарегистрировано. У меня есть компьютер с Windows Server для моего агента сборки, и он настроен для работы в качестве службы Windows. Я изменил настройку входа в систему, чтобы служба была пользователем вместо учетной записи SYSTEM, и все казалось нормальным, пока у меня не возникла та же проблема, что и у вас. Я никогда не находил способ исправить это при запуске агента в качестве службы, поэтому я изменил его, чтобы запустить агент из их файла /bin/agent.bat. Я мог бы добиться такой же настройки, запустив ее как запланированную задачу и запустив ее при запуске. Но, в конечном счете, решение не запускаться в качестве службы Windows устранило проблему для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...