TeamCity: структура и описание рабочей директории сервера – BuildServer

Автор: | 30/11/2013

teamcity_logoПеревод официальной страницы руководства с небольшими поправками.

Общая структура рабочей директории сервера TeamCity:

$ tree -d -L 1 -a .BuildServer/
.BuildServer/
├── config
├── lib
├── plugins
└── system

Директория config содержит настройки проектов TeamCity. Директория system – логи сборок, артефакты и файлы базы данных HSQLDB.

Рассмотрим их более подробно.

~/.BuildServer/config/ – директория, в которой хранятся основные настройки самого сервера, проектов и конфигурации билдов

~/.BuildServer/config/_trash/ – резервные копии удалённых проектов.

~/.BuildServer/config/_notifications/ – шаблоны и настройки шаблонов уведомлений.

~/.BuildServer/config/_logging/ – настройки внешнего сервера логгирования (сам TeamCity по-умолчанию хранит логи в каталоге ../logs).

~/.BuildServer/config/projects – директория, в которой хранятся все настройки, относящиеся к проектам. Для каждого проекта имеется отдельный каталог. При этом иерархия проектов не относится к этой директории – все хранится в её корне.

~/.BuildServer/config/projects/<projectID> – директория, хранящая настройки проекта <projectID> (включая конфигурации билдов, но не хранящая настройки под-проектов иерархии. Директория _Root хранит настройки проекта ROOT.

~/.BuildServer/config/projects/<projectID>/buildNumbers – директория, в которой хранятся файлы <buildConfigurationID>.buildNumbers.properties, содержащие текущий номер билда для соответствующего проекта.

~/.BuildServer/config/projects/<projectID>/buildTypes – директория, содержащая файл <buildConfiguration или template ID>.xml с конфигурацией билда соответствующего проекта или настроек шаблона.

~/.BuildServer/config/projects/<projectID>/pluginData – директория для хранения опциональных настроек и настроек плагинов для соответствующего проекта. Другие настройки плагинов и вспомогательные настройки проекта, такие как дополнительные вкладки, хранятся в файле  plugin-settings.xml.

~/.BuildServer/config/projects/<projectID>/vcsRoots – директория, хранящая настройки VCS root в файле _<VcsRootID>.xml.

~/.BuildServer/config/projects/<projectID>/project-config.xml – основной конфигурационный файл проекта, содержащий так же информацию о конфигурации билда данного проекта.

~/.BuildServer/config/main-config.xml – общий файл конфигурации сервера.

~/.BuildServer/config/database.properties – файл конфигурации соединения с базой данных для TeamCity сервера.

~/.BuildServer/config/license.keys – файл лицензии.

~/.BuildServer/config/change-viewers.properties – настройки External Changes Viewer.

~/.BuildServer/config/internal.properties – файл настроек различных internal TeamCity properties. Должен быть создан вручную при необходимости.

~/.BuildServer/config/auth-config.xml – основной файл настроек аутентификации на сервере.

~/.BuildServer/config/ldap-config.properties – настройки LDAP-аутентификации.

~/.BuildServer/config/ntlm-config.properties – настройки Windows domain аутентификации.

~/.BuildServer/config/issue-tracker.xml – параметры интеграции issue tracker.

~/.BuildServer/config/cloud-profiles.xml – настройки “облака” (например –  Amazon EC2).

~/.BuildServer/config/backup-config.xml – настройки резервного копирования веб-интрефйса.

~/.BuildServer/config/roles-config.xml – файлы назначения разрешений для ролей пользователей.

~/.BuildServer/config/database.*.properties.dist – шаблоны настроек подключений к внешним серверам баз данных.

~/.BuildServer/config/*.dtdDTD файлы для  файлов конфигурации XML.

~/.BuildServer/config/.dist — шаблоны настроек по-умолчанию для соответствующих файлов, см. также тут>>>.

~/.BuildServer/plugins/ – директория для хранения внешних плагинов, которые должны быть запущены при старте TeamCity сервера. Структура плагинов описывается тут>>>.

~/.BuildServer/plugins/.upacked – директория, хранящая не распакованные плагины самого сервера. Нельзя вносить изменения во время работы сервера.

~/.BuildServer/plugins/.tools – создайте эту директорию для централизованного управления утилитами для buildAgent-ов. Любая директория или zip-архив в ней будут переданы всем активным build-агентам и помещены в директории <agent root>/tools этих агентов.

~/.BuildServer/system/ – директория для хранения результатов билдов. Содержимое генерируется самим сервером TeamCity и не предназначено для ручного редактирования.

~/.BuildServer/system/artifacts/ – директория для хранения собранных после билдов артефактов. Формат хранилища артефактов – <project ID>/<build configuration name>/<internal_build_id>. При необходимости – файлы в каждой директории билдов можно редактировать вручную.

~/.BuildServer/system/artifacts/*/.teamcity – директория в каталоге каждого билда, в которой хранятся скрытые артефакты.

~/.BuildServer/system/messages/ – директория хранения логов билдов во “внутреннем формате”. Билд с ID internal idxxxx” хранит свой лог в файле CHyy/xxxx.*, где “yy” – последние две цифры “xxxx“.

~/.BuildServer/system/messages/changes – директория для хранения изменений, вызванных внешними запусками. Имена файлов в директории содержат personal change id.

~/.BuildServer/system/pluginData/ – директория, в которой различные плагины могут хранить их данные.  Не рекомендуется удалять или изменять эту директорию и/или её содержимое.

~/.BuildServer/system/pluginData/audit/ – директория, содержащая историю изменения билд-конфигурации, используется для отображения этих изменений.

~/.BuildServer/system/pluginData/repositoryStates/ – директория, хранящая состояние VCS roots. Если удалить – TeamCity может не определить некоторые изменения состояния файлов в VCS.

~/.BuildServer/system/caches/ – директория для хранения кеша (содержимое репозитория VCS, индексы поисков и т.д.). Если нужно – можно удалить содержимое, данные будут автоматически восстановлены по мере необходимости. Очистку лучше производить при выключенном сервере.

~/.BuildServer/system/buildserver.* – набор файлов, относящихся к встроенной базе данных HSQLDB.

~/.BuildServer/backup – директория по-умолчанию для хранения резервных копий, созданных из веб-интерефейса. Файлы в ней не используются сервером и могут быть удалены вручную.

~/.BuildServer/lib/jdbc/ – директория, используемая сервером TeamCity для поиска драйверов баз данных. Создайте вручную при необходимости. Сам сервер не управляет файлами в этой директории, а только проверяет её на наличие *.jar файлов в поиске необходимых драйверов.