При использовании подхода непрерывной интеграции часто возникает необходимость запустить не одну сборку, а запустить последовательность сборок.
Это актуально, когда код продукта разделен на несколько проектов и они зависят друг от друга.
В этой статье я хочу рассказать вам, как это можно сделать с помощью TFS-сервера.
Пусть у нас есть два проекта «Сборка1» и «Сборка2».
Для проекта «Сборка1» настроены две конструкции: «Библиотека классов1» и «Библиотека классов2».
Для проекта «Сборка2» также настраиваются две конструкции: «А2.т2» и «А2.т3».
После начала построения «ClassLibrary1» нам необходимо последовательно запустить «ClassLibrary2» и «A2.t2».
1. Простой и медленный способ (мы делали это раньше).
Конструкции ClassLibrary2 и A2.t2 настраиваем особым образом: Мы указываем строительство при заселении.
Добавляем рабочие папки из предыдущей сборки.
Для построения «A2.t2» выполняются аналогичные шаги.
Преимущество здесь в том, что вам не нужно изменять рабочий процесс, используемый для сборки.
Но есть и больше недостатков: — Чем больше «рабочих каталогов» используется, тем больше времени занимает построение.
— Последовательность построений нельзя запускать вручную, только регистрация.
— Последовательность построений может выполняться в любой последовательности, что не всегда хорошо.
В нашем случае мы не знаем, какая конструкция будет выполнена раньше «ClassLibrary2» или «A2.t2».
2. Мы используем TFS API. — Создаём новый проект «ClassLibrary».
— Добавьте новый элемент «CodeActivity».
— Мы создаем два входных параметра «BuildDetail» и «TfsProjectAndBuildDefinition», первый из которых используется для получения и управления BuildServer. — Анализируем список проектов и построек.
— Этот список состоит из строк, где каждая строка определяет название проекта, по которому ведется строительство, и название сооружения, разделенные точкой с запятой.
Ниже приведен код:
Теги: #Team Foundation Server 2013 #непрерывная интеграция #C++ #.using System; using System.Activities; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Text; using Microsoft.TeamFoundation.Build.Client; using Microsoft.TeamFoundation.Build.Workflow.Activities; using Microsoft.TeamFoundation.Build.Workflow.Services; using Microsoft.TeamFoundation.Client; namespace QueueNewBuilds {
netframeowrk #.
NET #C++
-
Почему Резервная Копия Sql Так Важна
19 Oct, 24 -
Sony Анонсировала Серию X
19 Oct, 24 -
Чемпионат По Супам?
19 Oct, 24 -
(Fo) Xmarks
19 Oct, 24 -
Новая Версия Picasa Для Linux
19 Oct, 24