- Поднимите инфраструктуру 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
- Сделайте fork репозитория aragastmatb/example-teamcity Форк: https://github.com/murzinvit/example-teamcity
1.Создайте новый проект в teamcity на основе fork:
2.Сделайте autodetect конфигурации:
3.Сохраните необходимые шаги, запустите первую сборку master'a:
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
5. Мигрируйте build configuration в репозиторий:
Добавить Connections на github(в Root_Project) Инструкция
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:
11. Внесите изменения из произвольной ветки feature/add_reply в master через Merge:
git merge feature/add_reply && git push origin master
repo_merged
12. Убедитесь, что нет собранного артефакта в сборке по ветке master:
13. Настройте конфигурацию так, чтобы она собирала .jar в артефакты сборки:
jar получается из шагов clean и package, указать в build steps:
Настроить публикацию артифакта можно в Progect -> General Settings -> Artifact paths -> target
14. Проведите повторную сборку мастера, убедитесь, что сбора прошла успешно и артефакты собраны:
15. Проверьте, что конфигурация в репозитории содержит все настройки конфигурации из teamcity:
При попытке docker-compose up на virtulbox Ubuntu:
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 и авторизоваться выйдет список репозиториев: