- В Yandex Cloud создайте новый инстанс (4CPU4RAM) на основе образа
jetbrains/teamcity-server
. - Дождитесь запуска teamcity, выполните первоначальную настройку.
- Создайте ещё один инстанс (2CPU4RAM) на основе образа
jetbrains/teamcity-agent
. Пропишите к нему переменную окруженияSERVER_URL: "http://<teamcity_url>:8111"
. - Авторизуйте агент.
- Сделайте fork репозитория.
- Создайте VM (2CPU4RAM) и запустите playbook.
- Создайте новый проект в teamcity на основе fork.
- Сделайте autodetect конфигурации.
- Сохраните необходимые шаги, запустите первую сборку master.
- Поменяйте условия сборки: если сборка по ветке
master
, то должен происходитmvn clean deploy
, иначеmvn clean test
. - Для deploy будет необходимо загрузить settings.xml в набор конфигураций maven у teamcity, предварительно записав туда креды для подключения к nexus.
- В pom.xml необходимо поменять ссылки на репозиторий и nexus.
- Запустите сборку по master, убедитесь, что всё прошло успешно и артефакт появился в nexus.
- Мигрируйте
build configuration
в репозиторий. - Создайте отдельную ветку
feature/add_reply
в репозитории. - Напишите новый метод для класса Welcomer: метод должен возвращать произвольную реплику, содержащую слово
hunter
. - Дополните тест для нового метода на поиск слова
hunter
в новой реплике. - Сделайте push всех изменений в новую ветку репозитория.
- Убедитесь, что сборка самостоятельно запустилась, тесты прошли успешно.
- Внесите изменения из произвольной ветки
feature/add_reply
вmaster
черезMerge
. - Убедитесь, что нет собранного артефакта в сборке по ветке
master
. - Настройте конфигурацию так, чтобы она собирала
.jar
в артефакты сборки. - Проведите повторную сборку мастера, убедитесь, что сбора прошла успешно и артефакты собраны.
- Проверьте, что конфигурация в репозитории содержит все настройки конфигурации из teamcity.
- В ответе пришлите ссылку на репозиторий.
Ссыкла на fork репозиторий https://github.com/SomovAA/example-teamcity, в нём есть файл backup-а в директории https://github.com/SomovAA/example-teamcity/tree/master/backup (server settings, projects and builds configurations (including secure values), plugins)
Артефакты сборки artifacts