Angular-CLI build (ng build) на Teamcity
Я надеюсь, что кто-то уже сделал это. Я пытаюсь настроить непрерывную сборку в teamcity для одного моего проекта angular 2. После некоторых исследований я последовал следующим шагам:
- Build Step1: установлен jonnyzzz.узел плагин для teamcity. (Теперь я могу выбрать Node.JS NPM от типа Runner)
команды npm: я добавил команду install - Построить Шаг 2: Другой Узел.команды JS NPM и npm: install-g angular-cli
Так хорошо!--5--> - Теперь я хотел построить ng build в качестве третьего шага, и я действительно застрял, так как у меня нет способа сделать это.
любая помощь будет оценили.
спасибо.
3 ответов
вместо того, чтобы менять пакет.json вы можете нам узел.плагин JS NPM и команда run:
run build
build это не команда по умолчанию для NPM, поэтому вам нужна "run build", которая сопоставлена с ng build в пакете ng-cli по умолчанию.в JSON
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
чтобы получить работу сборки ng от плагина nodejs для Team city, я изменил пакет.файл json. В start замените значение на "ng build". И из team city команда сборки npm вызовет команду сборки ng.
сначала начните с агентов сборки, где вы можете редактировать buildAgent.свойства файла и определить 3 переменные среды. Вы должны иметь окружающие одинарные кавычки здесь или позже в ваших определениях сборки:
env.exec.node='C\:\Program Files\nodejs\node.exe'
env.exec.npm='C\:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js'
env.exec.ng='%env.APPDATA%\npm\node_modules\@angular\cli\bin\ng'
на %env.APPDATA%
используется здесь, но некоторые настройки могут быть установлены в программных файлах,в большинстве случаев AppData будет одним из них.
Далее вы можете определить шаги сборки для вашего проекта. Создайте эти новые шаги сборки типа Powershell и установить скрипт в качестве исходного кода. Внутри источника скрипта теперь можно ввести:
установить Angular CLI
& %env.exec.node% %env.exec.npm% install -g @angular/cli
установить папку node_modules
& %env.exec.node% %env.exec.npm% install
создание и публикация решения
& %env.exec.node% %env.exec.ng% build --environment '%env.build.environment%' --scripts-prepend-node-path
после этого шага производственные сборки создадут папку dist, которую вы можете включить в пути артефактов, чтобы иметь доступ к ней, если вы хотите создать отдельный тип развертывания построить конфигурации
некоторые соображения, чтобы принять во внимание здесь:
- вы можете определить переменные внутри однако различные пути могут использоваться на агентах сборки, которые будут тормозить ваши сборки
- убедитесь, что у вас есть правильные правила очистки на месте, так как node_modules папки могут получить большой очень быстро
надеюсь, это поможет кому-то!