нг построить не создание активов и тому подобное в Дженкинс - PullRequest
0 голосов
/ 09 июля 2019

У нас возникли проблемы с нашей автоматической системой развертывания.

На наших компьютерах при запуске ng build создается папка dist.Внутри папки он имеет assets, как и ожидалось.

Я повторил это на сервере сборки, вручную извлекая git-репозиторий и запуская «файл сборки» (сервер сборки работает на Windows Server. Процесс сборки и развертывания для удобства управляется с помощью скрипта PowerShell.

Когда наш сервер Jenkins запускает скрипт сборки, папка assets отсутствует в папке /dist/, а также в некоторых другихфайлы, настроенные в angular.json.

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

Проблема сохраняется при запуске сценария PowerShell непосредственно из рабочей области Jenkins, когда оболочказапускается как системный администратор.

CLI не выдает никаких ошибок.Я прилагаю подробный журнал, на случай, если это может быть полезно.https://gist.github.com/cf-jola/6cc6cff138da5105f3b10adffb72895f#file-output-txt

Запуск сценария от имени системного администратора. Я исключил, что это проблема с разрешениями.Дженкинс также может создавать другие файлы, такие как .js файлы и файл index.html.

Мой обходной путь сейчас заключается в том, чтобы с помощью сценария развертывания powershell вручную скопировать assetsно я бы хотел избавиться от этого обходного пути, поскольку мы начинаем получать несколько файлов в нашем разделе angular.json > assets.

Для ссылок:

angular.json https://gist.github.com/cf-jola/6cc6cff138da5105f3b10adffb72895f#file-angular-json

сценарий развертывания: https://gist.github.com/cf-jola/6cc6cff138da5105f3b10adffb72895f#file-deploy-ps1

1 Ответ

0 голосов
/ 10 июля 2019

Это ошибка в Node или Angular CLI.

Поскольку у нас есть скобки, ( & ), в пути сборки они заключены в квадратные скобки.

Это приводит к тому, что путь: C:\Program Files (x86)\Jenkins\... становится этим C:\Program Files [(]x86[)]\Jenkins\... и, таким образом, становится недействительным.

Мы обнаружили проблему, используя Process Monitor и просматривая события, сгенерированные в процессе сборки.

...