Поделиться через


Пошаговое руководство. Определение пользовательского рабочего процесса для развертывания базы данных из Team Foundation Build

Перед развертыванием проекта базы данных с помощью Team Foundation Build необходимо сначала определить пользовательский рабочий процесс, настроенный для развертывания базы данных. Пользовательский рабочий процесс необходимо определить перед использованием этого определения рабочего процесса в определении построения. Для определения рабочего процесса служит Windows Workflow 4.0. Чтобы выполнить эту простую процедуру, не надо быть экспертом.

Для выполнения данного пошагового руководства необходимо выполнить следующие задачи.

  1. Создание шаблона процесса построения

  2. Настройка нового шаблона

  3. Возврат шаблона в систему управления версиями

Необходимые разрешения

Для выполнения следующих процедур необходимо задать для разрешения Редактировать определение построения значение Разрешить. Дополнительные сведения см. в разделе Разрешения Team Foundation Server.

Создание шаблона процесса построения

Самый простой способ создать шаблон процесса построения — это скопировать шаблон по умолчанию. Это действие можно выполнить при создании определения построения. Обычно выполняется определение построения. Так как это пошаговое руководство посвящено шаблону пользовательского процесса построения, остальные детали определения нового построения здесь не рассматриваются. Дополнительные сведения о порядке определения построения для проекта базы данных см. в разделе Практическое руководство. Развертывание изменений с использованием Team Foundation Build.

Создание пользовательского шаблона

  1. В командном обозревателе щелкните командный проект, в котором нужно создать пользовательский рабочий процесс.

  2. В меню Построение выберите Новое определение построения.

  3. Щелкните вкладку Процесс, чтобы открыть следующую схему.

    Вкладка "Процесс" для нового определения построения

  4. Нажмите кнопку Показать подробности, затем щелкните Создать.

    Откроется диалоговое окно Новый шаблон процесса построения.

  5. Щелкните Копировать существующий XAML-файл.

  6. В поле Новое имя файла укажите имя пользовательского рабочего процесса, затем нажмите кнопку ОК.

    Примечание

    Если требуется повторно использовать существующий XAML-файл, можно щелкнуть Выбрать существующий XAML-файл, затем указать путь к файлу на сервере управления версиями.

  7. В окне определения построения под меню Файл процесса построения щелкните гиперссылку с именем шаблона.

    Папка с новым шаблоном появится в обозревателе управления исходным кодом.

  8. В области Папки щелкните правой кнопкой мыши папку, содержащую новый шаблон, и выберите Получить последнюю версию.

  9. Щелкните правой кнопкой мыши новый шаблон и выберите Извлечь для изменения.

    Будет открыто диалоговое окно Извлечение.

  10. Нажмите кнопку Извлечь.

  11. Щелкните правой кнопкой мыши новый шаблон и выберите Вид.

    Открывается окно Конструктор рабочих процессов Windows в Visual Studio.

    Дополнительные сведения см. в одном из следующих разделов.

Настройка нового шаблона

Чтобы добавить шаг развертывания в конец процесса построения, необходимо добавить последовательность в шаблон по умолчанию. Для настройки XAML-файла служит Конструктор рабочих процессов Windows. Даже если раньше вы не пользовались этим дизайнером, в шагах следующей процедуры нет ничего особенно сложного. Вкратце, последовательность добавляется в рабочий процесс, в котором будет выполняться развертывание базы данных с помощью программы VSDBCMD.EXE, если построение и все тесты будут успешно выполнены.

Эта последовательность содержит одно действие "If", которое будет выполнять развертывание базы данных при условии, что построение успешно завершено и тесты успешно выполнены (или тесты отсутствуют). Для упрощения понимания этого определения раздел разбит на четыре процедуры.

  1. Добавление последовательности развертывания базы данных в рабочий процесс

  2. Добавление действия "If"

  3. Определение блока развертывания Then

  4. Определение блока "Иначе пропустить развертывание"

Добавление последовательности развертывания базы данных в рабочий процесс

  1. В окне Конструктор рабочих процессов Windows щелкните Свернуть все.

    Появляется следующая схема.

    Рабочий процесс исходного развертывания

  2. Откройте панель элементов, разверните раздел Поток управления, затем перетащите действие Последовательность на стрелку в конструкторе, расположенную под пунктом Возврат собранных изменений для возвращенных построений набора отложенных изменений. Если задержать указатель на стрелке, появляется вторая стрелка.

  3. Поместите действие между этими двумя стрелками, как показано на следующей схеме.

    Рабочий процесс после перетаскивания новой последовательности

  4. Щелкните правой кнопкой мыши добавленную последовательность и выберите пункт Свойства.

    Появится окно Свойства.

  5. Задайте для свойства DisplayName значение "Развернуть базу данных".

  6. В последовательности Развернуть базу данных дважды щелкните область Дважды щелкните, чтобы просмотреть.

    Конструктор увеличивает изображение последовательности Развернуть базу данных, как показано на следующей схеме.

    Рабочий процесс после разворачивания последовательности развертывания

    Вверху конструктора расположен канал навигации, как показано на следующей схеме.

    Канал навигации в конструкторе рабочих процессов Windows

Далее в последовательность развертывания добавляется действие If.

Добавление действия "If"

  1. Откройте Панель элементов, разверните раздел Поток управления и перетащите действие If в область Перетащите сюда действие.

    Как показано на следующей схеме, на последовательности Развернуть базу данных и на действии If отображаются значки предупреждения, так как действие If еще не настроено.

    Рабочий процесс после добавления действия If

  2. Щелкните правой кнопкой мыши добавленное действие и выберите пункт Свойства.

    Появится окно Свойства.

  3. Задайте для свойства DisplayName действия If значение "При успешном построении и прохождении тестов".

  4. Дважды щелкните область Дважды щелкните, чтобы просмотреть в действии If.

  5. В поле Условие введите следующее условие.

    BuildDetail.CompilationStatus = BuildPhaseStatus.Succeeded And (BuildDetail.TestStatus = BuildPhaseStatus.Succeeded Or BuildDetail.TestStatus = BuildPhaseStatus.Unknown)
    

    Это условие проверяет успешность выполнения построения, а также успешность или отсутствие тестов.

Действие При успешном построении и прохождении тестов выглядит примерно так, как показано на следующей схеме.

Рабочий процесс после разворачивания действия If

Теперь в часть Then действия If добавляется действие Invoke Process.

Определение блока развертывания Then

  1. Откройте Панель элементов, найдите действие InvokeProcess в разделе Операции Team Foundation Build и перетащите его в область Перетащите сюда действие в предложении Then.

    На действии При успешном построении и прохождении тестов и на действии InvokeProcess отображаются значки предупреждения, так как действие InvokeProcess еще не настроено.

  2. Дважды щелкните область Дважды щелкните, чтобы просмотреть в действии Запустить VSDBCMD.

    Это действие выглядит следующим образом.

    Рабочий процесс при определении предложения Then

  3. Задайте свойства действия InvokeProcess, выполнив следующие подзадачи.

    1. Щелкните правой кнопкой мыши добавленное действие и выберите пункт Свойства.

      Появится окно Свойства.

    2. Задайте для свойства DisplayName действия InvokeProcess значение "Запустить VSDBCMD".

    3. Задайте в свойстве Arguments значение "/a:Deploy /dd+ /dsp:Sql /manifest:DatabaseProjectName.deploymanifest". Часть DatabaseProjectName необходимо заменить именем проекта базы данных, который требуется развернуть.

    4. Задайте для свойства FileName путь к файлу VSDBCMD.EXE на сервере построения. Например, может быть указано C:\Program Files\Microsoft Visual Studio 10.0\VSTSDB\Deploy\VSDBCMD.EXE, если на компьютер построения установлен пакет Visual Studio, или C:\Deploy\VSDBCMD.EXE, если на компьютер построения просто скопирована папка "Deploy".

      Важно!

      Для развертывания базы данных с помощью программы VSDBCMD.EXE необходимо, чтобы на компьютере построения находилось содержимое папки "Deploy".Дополнительные сведения см. в разделе Практическое руководство. Подготовка базы данных к развертыванию из командной строки с помощью программы VSDBCMD.EXE.

    5. Задайте для свойства WorkingDirectory значение BuildDetail.DropLocation.

  4. Откройте Панель элементов, найдите действие WriteBuildMessage в разделе Операции Team Foundation Build и перетащите его в область Перетащите сюда действие раздела Обработать стандартный вывод.

    На действии Запустить VSDBCMD и на действии WriteBuildMessage отображаются значки предупреждения, так как действие WriteBuildMessage еще не настроено.

  5. Задайте свойства действия WriteBuildMessage, выполнив следующие подзадачи.

    1. Щелкните правой кнопкой мыши добавленное действие и выберите пункт Свойства.

      Появится окно Свойства.

    2. Задайте для свойства DisplayName действия WriteBuildMessage значение "Выходные данные VSDBCMD".

    3. Задайте для свойства Importance значение Microsoft.TeamFoundation.Build.Client.BuildMessageImportance.High.

    4. Задайте для свойства Message значение stdOutput.

  6. Откройте Панель элементов, найдите действие WriteBuildError в разделе Операции Team Foundation Build и перетащите его в область Перетащите сюда действие раздела Обработать вывод ошибки.

    На действии Запустить VSDBCMD и на действии WriteBuildError отображаются значки предупреждения, так как действие WriteBuildError еще не настроено.

  7. Задайте свойства действия WriteBuildError, выполнив следующие подзадачи.

    1. Щелкните правой кнопкой мыши добавленное действие и выберите пункт Свойства.

      Появится окно Свойства.

    2. Задайте для свойства DisplayName действия WriteBuildError значение "Ошибка VSDBCMD".

    3. Задайте для свойства Message значение errOutput.

    4. В канале вверху конструктора щелкните При успешном построении и прохождении тестов.

      При этом производится переход на один уровень вверх в рабочем процессе.

На этом этапе рабочий процесс выглядит так, как показано на следующей схеме.

Рабочий процесс после завершения предложения Then

Далее определите детали действия Else.

Определение блока "Иначе пропустить развертывание"

  1. Откройте Панель элементов, найдите действие WriteBuildWarning в разделе Операции Team Foundation Build и перетащите его в область Перетащите сюда действие в предложении Else.

    На действии При успешном построении и прохождении тестов и на действии InvokeProcess отображаются значки предупреждения, так как действие WriteBuildWarning еще не настроено.

  2. Задайте для свойства DisplayName действия WriteBuildMessage значение "Развертывание не выполнено".

  3. Задайте для свойства Message значение "Развертывание базы данных не выполнялось".

    Значки предупреждения больше не отображаются, так как действия рабочего процесса настроены.

Действие If теперь должно выглядеть так, как показано на следующей схеме.

Выполнение рабочего процесса развертывания базы данных

Рабочий процесс построения обновлен для развертывания указанного проекта базы данных. Теперь осталось вернуть шаблон в систему управления версиями, чтобы его можно было использовать в процессе построения.

Возврат шаблона в систему управления версиями

Чтобы можно было использовать рабочий процесс в определении построения, сначала необходимо вернуть его в систему управления версиями. Можно также воспользоваться такими преимуществами системы управления версиями, как ветвление. Ветвление рабочего процесса можно выполнить при ветвлении проекта.

  1. Сохраните рабочий процесс и закройте конструктор.

  2. В обозревателе управления исходным кодом щелкните правой кнопкой мыши свой новый шаблон и выберите нажмите Вернуть ожидающие изменения.

    Откроется диалоговое окно Возврат.

  3. (Необязательно.) Вы можете указать комментарии при возврате или дополнительные сведения об изменении. Дополнительные сведения см. в следующих разделах.

  4. Щелкните Вернуть.

Теперь можно определить построение с использованием пользовательского рабочего процесса, созданного в этом пошаговом руководстве. Дополнительные сведения см. в разделе Практическое руководство. Развертывание изменений с использованием Team Foundation Build.

Следующие действия

Теперь нужно выполнить тестирование настроенного шаблона. Дополнительные сведения см. в разделе Практическое руководство. Развертывание изменений с использованием Team Foundation Build.

См. также

Задачи

Практическое руководство. Подготовка базы данных к развертыванию из командной строки с помощью программы VSDBCMD.EXE

Практическое руководство. Развертывание изменений в новой или существующей базе данных

Основные понятия

Общие сведения о построении и развертывании базы данных

Журнал изменений

Дата

Журнал

Причина

Июль 2010

Добавлен этот раздел, показывающий, как создать пользовательский рабочий процесс для развертывания базы данных с помощью Team Foundation Build.

Улучшение информации.