Files
netology-devops/src/homework/09-ci/9.5

Выполнение домашнего задания по теме "9.5. Teamcity"

Q/A

Задание 1

Подготовка к выполнению

  1. В Ya.Cloud создайте новый инстанс (4CPU4RAM) на основе образа jetbrains/teamcity-server
  2. Дождитесь запуска teamcity, выполните первоначальную настройку
  3. Создайте ещё один инстанс(2CPU4RAM) на основе образа jetbrains/teamcity-agent. Пропишите к нему переменную окружения SERVER_URL: "http://<teamcity_url>:8111"
  4. Авторизуйте агент
  5. Сделайте fork репозитория
  6. Создать VM (2CPU4RAM) и запустить playbook

Форк репозитория: netology-devops-teamcity-example.

teamcity_dashboard

Задание 2

Основная часть

  1. Создайте новый проект в teamcity на основе fork

teamcity_new_project

  1. Сделайте autodetect конфигурации
  2. Сохраните необходимые шаги, запустите первую сборку master'a

teamcity_project_build

teamcity_build_success

  1. Поменяйте условия сборки: если сборка по ветке master, то должен происходит mvn clean deploy, иначе mvn clean test

teamcity_build_config

  1. Для deploy будет необходимо загрузить settings.xml в набор конфигураций maven у teamcity, предварительно записав туда креды для подключения к nexus
  2. В pom.xml необходимо поменять ссылки на репозиторий и nexus

teamcity_maven_config

  1. Запустите сборку по master, убедитесь что всё прошло успешно, артефакт появился в nexus

teamcity_deploy_success

nexus_release

  1. Мигрируйте build configuration в репозиторий

teamcity_build_config_sync

  1. Создайте отдельную ветку feature/add_reply в репозитории
git branch -C feature/add_reply && git switch feature/add_reply
  1. Напишите новый метод для класса Welcomer: метод должен возвращать произвольную реплику, содержащую слово hunter
  2. Дополните тест для нового метода на поиск слова hunter в новой реплике
  3. Сделайте push всех изменений в новую ветку в репозиторий

Ветка с изменениями: feature/add_reply

  1. Убедитесь что сборка самостоятельно запустилась, тесты прошли успешно

teamcity_build_branch_success

  1. Внесите изменения из произвольной ветки feature/add_reply в master через Merge
  2. Убедитесь, что нет собранного артефакта в сборке по ветке master
  3. Настройте конфигурацию так, чтобы она собирала .jar в артефакты сборки

Конфигурация уже настроена на сборку jar. При мерже в мастер сборка запустилась автоматически, так как изначально кофигурация проверяет все изменения всех веток в репозитории.

  1. Проведите повторную сборку мастера, убедитесь, что сбора прошла успешно и артефакты собраны

Поменяли pom.xml, вписав новую версию. Сборка запустилась автоматически и успешно опубликовала артефакты в nexus.

  1. Проверьте, что конфигурация в репозитории содержит все настройки конфигурации из teamcity
  2. В ответ предоставьте ссылку на репозиторий

netology-devops-teamcity-example