Архив рубрики: CI/CD

Continuous integration in software engineering is the practice of merging all developer working copies to a shared mainline several times a day.

Continuous delivery is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time and, when releasing the software, doing so manually. It aims at building, testing, and releasing software with greater speed and frequency.

Bamboo: установка и настройка на CentOS + MySQL/MariaDB

11 марта 2015
 

 Bamboo — билд-сервер и Сontinuous Integration tool, аналогичен TeamCity, но так как разработчик — Atlassian — то в нём реализована тесная интеграция с Jira и другими продуктами Atlassian. Именно поэтому на новом проекте решили попробовать мигрировать на Bamboo вместо TeamCity. Недостаток — он платный, но для знакомства доступна 30-ти дневная Trial лицензия, а годовая лицензия на… Читать далее »

TeamCity: SVN checkout загружает не все файлы/каталоги

5 марта 2015
 

 После выполнения server side checkout — на агенте появляется только корневая директория, и одна вложенная, хотя должно быть намного больше, и в логе никаких ошибок нет. Решение — установить Enforce clean checkout в Actions билда:  

TeamCity: OutOfMemoryError: GC overhead limit exceeded

28 февраля 2015
 

 При выполнении автотестов — агент упал с ошибкой нехватки памяти для Garbage Collector: [00:13:57][com.service] at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:258) [00:13:57][com.service] … 89 more [00:13:57][com.service] Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded [00:13:57][com.service] Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 25.558 sec <<< FAILURE! [00:13:59][com.service] Running com.HierarchyImportAutoTest

TeamCity: java.lang.IllegalStateException: Disk cache is not initialized. Call init() before using cache.

27 декабря 2014
 

 При запуске билда — билд-агент сообщает об ошибке: [13:00:29]Unexpected error: java.lang.IllegalStateException: Disk cache is not initialized. Call init() before using cache. [13:00:29]java.lang.IllegalStateException: Disk cache is not initialized. Call init() before using cache. at jetbrains.buildServer.artifacts.impl.DirectoryCacheProviderImpl.getHttpCache(DirectoryCacheProviderImpl.java:57) at jetbrains.buildServer.artifacts.impl.DependencyResolverImpl.createRuntimeConfiguration(DependencyResolverImpl.java:92) at jetbrains.buildServer.artifacts.impl.DependencyResolverImpl.resolve(DependencyResolverImpl.java:47) at jetbrains.buildServer.agent.impl.buildStages.startStages.DownloadDependenciesStage.doStage(DownloadDependenciesStage.java:67) at … … jetbrains.buildServer.agent.impl.BuildAgentImpl.access$100(BuildAgentImpl.java:48) at jetbrains.buildServer.agent.impl.BuildAgentImpl$1.run(BuildAgentImpl.java:221) at java.lang.Thread.run(Unknown Source)

CentOS: порядок выполнения init.d скриптов и приоритеты chkconfig

5 августа 2014
 

 На сервере использовался запуск TeamCity одной строкой в файле /etc/rc.local: su -c teamcity ‘/home/teamcity/TeamCity/bin/runAll.sh start’ Но после перезагрузки — в логе TeamCity появились сообщения: [2014-08-05 13:17:23,402] ERROR — jetbrains.buildServer.SERVER — Unable to change status of build 23908 jetbrains.buildServer.serverSide.db.UnexpectedDBException: Attempting to determine database type SQL exception: Communications link failure Т.е. — MySQL запустился после того, как запустился… Читать далее »

TeamCity: установка Team Piazza

11 февраля 2014
 

 Домашняя страница проекта — Team Piazza. Piazza — удобный виджет статуса билда, особенно полезный для вывода на большие экраны:

TeamCity: мониторинг нагрузки BuildAgent-ов

14 декабря 2013
 

 Для отслеживания нагрузки на систему во время выполнения билдов BuildAgent-ами у TeamCity имеется встроенный инструмент — Performance Monitor. Он выводит результаты использования CPU, диска и оперативной памяти в удобном графике. Для его подключения к проекту — переходим в настройки проекта, раздел 3: Build Step, и кликаем на Add build feature:

TeamCity: миграция базы данных с HSQLDB на MySQL

7 декабря 2013
 

 База данных для TeamCity содержит информацию о результатах и истории сборок, историю изменений в VCS, список и настройки build-агентов, очередь сборок, аккаунты пользователей и их настройки. Официальное руководство по TeamCity говорит однозначно: > In short, do not EVER use internal HSQLDB database for production TeamCity instances. Потому — выполним миграцию на MySQL. Кроме того —… Читать далее »

TeamCity: восстановление сервера из резервной копиии с помощью утилиты maintainDB

3 декабря 2013
 

 Производим обычную установку до момента, когда появится предложение «Create Administrator Account«. Сам процесс установки описан в статье TeamCity: установка на CentOS. Находясь в директории, в которую был распакован архив (например — /home/setevoy/TeamCity/bin) останавливаем сервер: $ ./runAll.sh stop Останавливаем агент: $ ./../buildAgent/bin/agent.sh stop Копируем файл настроек подключения к базе данных (в примере используется HSQLDB) в отдельный… Читать далее »

TeamCity: резервное копирование сервера с помощью утилиты maintainDB

2 декабря 2013
 

 TeamCity состоит из двух частей — директории/файлы в файловой системе, и база данных. Рабочая директория сервера: $ tree -d -L 1 -a .BuildServer/ .BuildServer/ ├── config ├── lib ├── plugins └── system Располагается, как правило, в домашней директории пользователя, от которого работает сам TeamCity, например: $ pwd /home/teamcity/.BuildServer