У меня возникли серьезные проблемы с получением последних частей моей конфигурации TeamCity.
У меня есть шаг powershell, который выполняет следующие команды:
& npm install
& grunt build
запись следующего вывода:
Build (Powershell) (1s)
[13:18:08]PowerShell Executable: C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
[13:18:08]Working directory: C:\BuildAgent\work\6a434ee5d01fd0d9
[13:18:08]PowerShell arguments: [-NonInteractive, -ExecutionPolicy, ByPass, -File, C:\BuildAgent\temp\buildTmp\powershell8407335260182621582.ps1]
[13:18:09]Error: ENOENT, stat 'C:\Windows\system32\config\systemprofile\AppData\Roaming\npm'
[13:18:09]
[13:18:09]grunt-cli: The grunt command line interface. (v0.1.13)
[13:18:09]Process exited with code 0
Я видел, что это известная проблема, но никто из решений работал у меня до сих пор.
Моя настройка такова: у меня есть две виртуальные машины в Azure, build и agent. Оба подключены к одному домену AD, domain, в котором есть пользователь domain\teamcityuser, который имеет "стандартный" класс (т.е. Не админ). Этот пользователь запускает как сервер сборки (в экземпляре build), так и агент сборки (в экземпляре agent).
Я пробовал эти вещи без успеха:
-  Создание каталога в сообщении об ошибке, удостоверение, что domain\teamcityuserимеет полные права доступа к нему.
-  Создание каталога npmвC:\Users\teamcityuser\AppData\Roaming
-  Создание файла C:\Windows\System32\config\SystemProfile\.npmrcс содержимымprefix=C:\npm-global, а также создание последней папки
-  Запуск npm cache cleanперед запуском сборки
-  Установка глобального пакета npmчерезnpm install -g npm
Чем больше я могу попытаться заставить это работать?
И чтобы избежать проблемы XY, вот моя фактическая проблема:
У меня есть проект .NET Web API с настройкой CI через эту установку TeamCity через Octopus Deploy и на сервер хостинга. У меня также есть github repo с кодом для веб-SPA, который будет использовать API. Спа-центр построен с grunt build, после чего есть папка dist со всем, что мне нужно развернуть.
Я бы хотел как можно больше использовать архитектуру CI для развертывания клиента.
