Объединение встроенных артефактов в Teamcity в один почтовый индекс
Цель: настроить скрипт ant/cmd, который будет упаковывать артефакты из нескольких сборок в один zip. Я планирую сделать это, настроив окончательную конфигурацию сборки, которая будет зависеть от этих нескольких проектов.
Поэтому все мои конфигурации сборки успешно создаются и создают артефакты сборки на сервере сборки @.BuildServer\system\artifacts{PROJECT}{несколько конфигураций}. В моей конфигурации "Агрегирование артефактов" мне нужно иметь возможность ссылаться на то, что и где эти Артефакты используют переменные, которые можно использовать в моем скрипте ant/cmd. то есть у меня есть проект A с конфигурациями w, x и y; Как определить / построить переменные I этих конфигураций (w, x, y), на которые может ссылаться конфигурация сборки z. Я посмотрел текущую документацию Teamcity, т.е. http://www.jetbrains.net/confluence/display/TCD3/System+Properties+of+a+Build+Configuration; но я считаю, что это не решает мой запрос.
Есть ли способ настроить пути артефактов для конфигураций w, x и y, чтобы упростить конечную задачу?
Как лучше всего выполнить эту задачу? Любые идеи приветствуются.
1 ответ
Вот как мы это делаем.
- Создайте конфигурацию n+1 (ZIP_ALL) и добавьте зависимость для всех n проектов, см. Триггер зависимости
- Создать сетевой ресурс \\server\Build для агрегирования результатов построения проекта
- (вам нужна стратегия очистки для этой папки) - мы просто отбрасываем все, наши товарищи по команде создают подпапки с именем SVN rev (TC устанавливает переменную со значением revision)
- Для каждой конфигурации создайте сценарий msbuild(или ant, или rake), который будет собирать и архивировать (если вам нужно) весь вывод из сборки
- Скопируйте zip-файл или заполните выходную папку в общую папку (\\server\Build), см. " Задача копирования".
- Создайте скрипт ant для конфигурации ZIP_ALL, который просто архивирует все файлы в общем месте
- Опубликуйте это в TeamCity через Artifact Publishing