Мы делаем нечто похожее для одного из моих проектов. Мы используем 2 конфигурации сборки.
Первый создает решение, запускает модульные тесты и создает артефакты.
Вторая сборка настроена с Зависимостью артефакта от последней успешной сборки. Это означает, что вторая сборка начнет захватывать артефакты из первой сборки. Вторая сборка будет иметь шаг сборки, который загружает на FTP-сайт. Вторая сборка настроена с помощью Finish Build Trigger , указывающего на первую сборку. Это заставит его стартовать, когда закончится первая сборка.
Это немного сложнее, но как только вы его настроите, все будет работать очень хорошо.