В этом блоге я хотел бы рассказать, как я настроил CI с проектом angular, который создается с помощью Angular CLI.

Ниже приведены шаги, которые я выполнил для настройки непрерывной интеграции.

  1. Установите Angular CLI

Перед установкой Angular CLI нам нужно установить nodejs в систему.

Установите Nodejs: https://nodejs.org/en/

Установите Angular CLI и создайте проект:

Он откроет браузер и запустит приложение angular на порту 4200. По умолчанию порт для проекта angular - 4200. Вы можете изменить его, указав с помощью команды ng server.

Теперь наш угловой проект готов. мы должны установить Jenkins для процесса CI.

2. Установите Jenkins

Установите Jenkins: https://jenkins.io/doc/pipeline/tour/getting-started/

Если вы еще не установили Jenkins в своей системе, он попросит создать учетную запись пользователя. По умолчанию Jenkins работает на порту 8080.

3. Установите PhantomJS

Angular CLI создает проект angular, который запускает наборы тестов с использованием karma, который использует браузер Google для отображения результатов теста.

Но для непрерывной интеграции нам понадобится какой-нибудь безголовый браузер для запуска наборов тестов в Jenkins.

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

Давайте установим PhantomJS:

npm install - save-dev phantomjs-prebuilt karma-phantomjs-launcher

Он установит karma-phantomjs-launcher в ваш угловой проект.

Теперь нам нужно настроить PhantomJS. Итак, нам нужно настроить некоторые параметры в karma.conf.js.

Ниже приведены изменения, которые необходимо обновить в файле karma.conf.js.

Я упомянул все изменения, которые внес в комментарии.

Кроме того, мы должны включить некоторые полифиллы, которые необходимы PhantomJS, иначе он не запустит тестовые костюмы.

Ниже приведены файлы, которые нам нужно импортировать в src / polyfills.ts.

Просто замените файл polyfills.ts приведенным выше кодом.

4. Давайте настроим Jenkins для настройки непрерывной интеграции:

Пришло время настроить CI в Jenkins.

  1. Сначала создайте один репозиторий git в своем проекте и разместите его на Gitlab, Bitbucket или Github и получите URL-адрес репозитория.

2. Теперь создайте фристайл-проект в Jenkins. Здесь я провожу тест по названию проекта, вы можете дать ему любое имя.

3. В Source Code Management настройте репозиторий, который вы создали только что. Поэтому всякий раз, когда вы вносите какие-либо изменения в свою ветку, она запускает задачу Jenkins, которую вы настраиваете в Jenkins Build. Также вы можете установить триггер сборки в соответствии с вашими требованиями.

4. Наконец, мы просто запускаем тестовые костюмы с помощью ng test: ng test - single-run true

Теперь настроена непрерывная интеграция, поэтому всякий раз, когда вы вносите какие-то изменения в репозиторий, Jenkins запускает тестовые костюмы и выдает результат в консоли Jenkins.

Мы можем настроить действия Post build в Jenkins, чтобы уведомлять пользователя о результатах теста.

Вот и все, что касается настройки непрерывной интеграции для angular проекта.

Надеюсь, вы захотите прочитать блог и настроить CI для проекта Angular с помощью Angular CLI + Jenkins + PhantomJS.