Angular-CLI build (ng build) на Teamcity

Я надеюсь, что кто-то уже сделал это. Я пытаюсь настроить непрерывную сборку в teamcity для одного моего проекта angular 2. После некоторых исследований я последовал следующим шагам:

  1. Build Step1: установлен jonnyzzz.узел плагин для teamcity. (Теперь я могу выбрать Node.JS NPM от типа Runner)
    команды npm: я добавил команду install
  2. Построить Шаг 2: Другой Узел.команды JS NPM и npm: install-g angular-cli
    Так хорошо!--5-->
  3. Теперь я хотел построить 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 папки могут получить большой очень быстро

надеюсь, это поможет кому-то!