Skip to content

murzinvit/09.04-Teamcity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 

Repository files navigation

09.04-Teamcity

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

  1. Поднимите инфраструктуру teamcity
    Установка инфраструктуры TeamCity:
    Docker pull jetbrains/teamcity-server:latest && Docker run -d -p 8111:8111 --name team-srv jetbrains/teamcity-server:latest
    После стандартных настроек с указанием типа БД, во вкладке - Agents push указал ip + login/password машины в роли агента(без агентов билды не работают)
    Установка инфраструктуры с помощью docker-compose:
    Установка самого docker-compose(предполагается что docker уже установлен): apt update && apt install docker-compose -y
    Клонируем репозиторий: git clone [email protected]/netology-code/mnt-homeworks.git
    Для поднятия инфраструктуры свободного места на диске нужно более 10Gb, т.к контейнеры по 2.2Gb: cd / && df -h
    Для корректной установки, нужно создать папки ~/data, ~/logs, ~/agent
    Для подключения teamcity-agent нужно поменять в docker-compose.yml - http:teamcity:8111 на http://localhost:8111
    Перейтив в папку с docker-compose.yml и запустить установку: cd ./mnt-homeworks/09-ci-04-teamcity/teamcity && docker-compose up
  2. Сделайте fork репозитория aragastmatb/example-teamcity Форк: https://github.com/murzinvit/example-teamcity

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

1.Создайте новый проект в teamcity на основе fork:
screen screen 2.Сделайте autodetect конфигурации:
screen 3.Сохраните необходимые шаги, запустите первую сборку master'a:
screen 4.Поменяйте условия сборки: если сборка по ветке master, то должен происходит mvn clean package, иначе mvn clean test:
Для выполнения cделал ветку - dev от master: git clone [email protected]:murzinvit/example-teamcity.git && git checkout -b "dev" && git push origin dev
Создал проект.
Создал VCS Root из репозитория example-teamcity с default branch - dev
Создал VCS Root из репозитория example-teamcity с default branch - master
При создании VCS root, поле - VCS root name уникально и произвольно для каждого VCS root
В проекте создал 2 BuildStepsConfigurations на каждый VCS Root свою - clean test, clean package шаги соответственно для dev и master
screen screen screen screen 5. Мигрируйте build configuration в репозиторий:
Добавить Connections на github(в Root_Project) Инструкция
screen 6. Создайте отдельную ветку feature/add_reply в репозитории:
git clone [email protected]:m...., git checkout -b "feature/add_reply
7. Напишите новый метод для класса Welcomer: метод должен возвращать произвольную реплику, содержащую слово hunter:
Welcomer.java
8. Дополните тест для нового метода на поиск слова hunter в новой реплике: WelcomerTest.java
9. Сделайте push всех изменений в новую ветку в репозиторий:
git add -A, git commit -m "Add Hunter", git push origin feature/add_reply feature/add_reply
10. Убедитесь что сборка самостоятельно запустилась, тесты прошли успешно:
Добавил новый в Teamcity новый VCS Root c default branch - feature/add_reply
Добавил триггер при коммите в ветку - запуск buid:
screen screen 11. Внесите изменения из произвольной ветки feature/add_reply в master через Merge:
git merge feature/add_reply && git push origin master repo_merged
12. Убедитесь, что нет собранного артефакта в сборке по ветке master:
screen
13. Настройте конфигурацию так, чтобы она собирала .jar в артефакты сборки:
jar получается из шагов clean и package, указать в build steps:
Настроить публикацию артифакта можно в Progect -> General Settings -> Artifact paths -> target
screen 14. Проведите повторную сборку мастера, убедитесь, что сбора прошла успешно и артефакты собраны:
screen 15. Проверьте, что конфигурация в репозитории содержит все настройки конфигурации из teamcity:
screen

Рабочие заметки:

Добавить VCS Root in Build Steps:

screen При попытке docker-compose up на virtulbox Ubuntu: screen Cделал ветку - dev от master: git clone [email protected]:murzinvit/example-teamcity.git && git checkout -b "dev" && git push origin dev
Далее создал проект где указал основной веткой - dev, в build steps добавил clean test, добавил триггер при коммите в ветку - запуск buid:
Сделал изменения в pom.xml - version - 0.2.1, groupId - DevOps6, далее закоммитил и запушил изменения:
Нажать на значке github и авторизоваться выйдет список репозиториев:
screen

Teamcity environment from docker-compos.yml - ok:

screen

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published