Заметки о выпуске Team Foundation Server 2017 с обновлением 2


Сообщество разработчиков | Требования к системе и совместимость | Условия лицензии | Блог по TFS DevOps | Хэши SHA-1 | Заметки о выпуске последней версии Visual Studio 2019


Примечание

Это не последняя версия Team Foundation Server. Вы можете скачать последний выпуск на странице заметок о текущем выпуске для Team Foundation Server 2018 с обновлением 3. Язык этой страницы можно изменить, щелкнув значок глобуса в нижнем колонтитуле страницы и выбрав нужный язык.


Эта статья содержит сведения о Team Foundation Server 2017 с обновлением 2. Нажмите кнопку, чтобы скачать файлы.

Скачивание последней версии Team Foundation Server

Дополнительные сведения о Team Foundation Server 2017 см. на странице Server Requirements and Compatibility .

Дополнительные сведения см. на странице по установке TFS.


Значок " Дата выпуска: 24 июля 2017 г.

Сводка новых возможностей Team Foundation Server 2017 с обновлением 2

Мы добавили в Team Foundation Server 2017 с обновлением 2 много новых и полезных функций. Вот некоторые из них:

Вы можете просмотреть сведения обо всех новых функциях из определенной области:


Сведения о новых возможностях TFS 2017 с обновлением 2

Усовершенствования отслеживания рабочих элементов

Значки для типов рабочих элементов

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

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

Цветные полосы, обозначавшие тип невыполненной работы и запросов, были заменены цветными значками (рис. 1) .

Значки остроумия в запросе
(рис. 1) Цветные значки в запросе

Карты на доске теперь включают в себя значок типа (рис. 2) .

Доска с типом значка
(рис. 2) Карта со значком типа

Планы поставки

Планы поставки — это организационное средство, помогающее контролировать и согласовывать работу разных команд за счет отслеживания состояния работы в итерационном календаре. Вы можете адаптировать план, включив в него любую команду или любой уровень невыполненной работы по проектам. Кроме того, функция Условия полей в этом средстве позволяет дополнительно настроить представление, а функция Маркеры — выделить важные даты. 

Получить дополнительные сведения о расширении и установить его можно на странице Планы выполнения в Marketplace.

Для пользователей с экземпляром TFS, который отключен от Интернета, планы поставки будут доступны непосредственно из раздела Управление расширениями в веб-доступе без необходимости перехода в VSTS Marketplace. В разделе Управление расширениями щелкните Обзор локальных расширений, а затем выберите Планы поставки и нажмите кнопку Установить. Дополнительные сведения см. в документации по предварительно установленным расширениям.

Автоматическое связывание от рабочих элементов до сборок

Этот новый параметр в определении сборки позволяет отслеживать сборки, включающие в себя вашу работу, без поиска по обширному набору сборок вручную. Каждая успешная сборка, сопоставленная с рабочим элементом, автоматически отображается в области разработки формы рабочего элемента.

Чтобы включить эту функцию, переключите параметр в разделе Параметры в определении сборки (рис. 3) .

Связывание сборки WIT
(рис. 3) Связывание сборки WIT

Нерекомендуемая старая форма рабочего элемента

В целом отзывы по новой форме рабочего элемента оказались положительными, и показатель внедрения по размещенным учетным записям теперь составляет 100 %. Мы хотим, чтобы локальные клиенты смогли оценить те функции, которые так понравились пользователям VSTS. Поэтому мы решили объявить старую форму рабочего элемента и старую модель расширяемости нерекомендуемыми. Дополнительные сведения о наших планах см. на странице об управлении жизненным циклом приложений Майкрософт.

Функция поиска рабочих элементов предоставляет обширные возможности поиска рабочих элементов по всем проектам в коллекции (рис. 4) . Подсистема полнотекстового поиска позволяет легко искать термины по всем полям рабочих элементов и эффективно находить подходящие рабочие элементы. С помощью встроенных фильтров поиска можно быстро сузить список рабочих элементов.

Настроив службу поиска в Team Foundation Server, вы можете приступить к поиску без установки дополнительных компонентов. С помощью функции поиска рабочих элементов можно выполнять следующие задачи:

  • Поиск по всем проектам: ищите данные в невыполненной работе — как своей, так и команды. Используйте межпроектный поиск, чтобы искать данные по всем рабочим элементам в вашей организации. Сузьте поиск с помощью фильтров путей областей и проектов.
  • Поиск по всем полям рабочих элементов: быстро и легко находите соответствующие рабочие элементы, выполняя поиск по всем полям рабочих элементов (включая поля ere). Используйте полнотекстовый поиск по всем полям, чтобы эффективно находить подходящие рабочие элементы. Представление фрагмента кода указывает, где именно найдены совпадения.
  • Поиск в определенных полях: с помощью быстродействующих встроенных фильтров поиска можно сузить список рабочих элементов в считаные секунды. Раскрывающийся список с предложениями помогает ускорить поиск. Например, запрос AssignedTo:Chris WorkItemType:Bug State:Active находит все активные ошибки, назначенные пользователю с именем учетной записи Chris.
  • Преимущества от интеграции с отслеживанием рабочих элементов: интерфейс поиска рабочих элементов интегрируется с привычными элементами управления в центр работы, позволяя просматривать, изменять, комментировать элементы, предоставлять их для общего доступа и т. д.
Поиск workitem
(рис. 4) Поиск рабочих элементов

Усовершенствования управления версиями

Новая процедура настройки политик ветви

Мы переработали процедуру настройки политик ветви и внесли в нее новые интересные функции (рис. 5) .  Одной из наиболее эффективных функций является возможность настройки политик для папок ветви.  Вы можете сделать это из представления Ветви, выбрав папку ветви и пункт Политики ветви в контекстном меню.  

Настройка политик ветвей
(рис. 5) Настройка политик ветви

При этом запускается новая процедура для настройки политик, которые применяются ко всем ветвям в папке ветви (рис. 6) .  

Страница
(рис. 6) Страница политик

Если вы используете политику сборки, то теперь можете настроить несколько сборок для одной ветви.  Появились и параметры, позволяющие задать автоматическую или ручную активацию (рис. 7) . Ручная активация удобна для таких вещей, как автоматические тестовые запуски, выполнение которых может занимать много времени, а требуется лишь один раз перед завершением запроса на включение внесенных изменений.  Политика сборки также имеет отображаемое имя, что удобно при настройке нескольких сборок.

Сборка вручную
(рис. 7) Сборка вручную

После настройки политики, активируемой вручную, вы можете запустить ее, выбрав параметр Поставить сборку в очередь в разделе Политики для запроса на вытягивание (рис. 8) .

Очередь сборки вручную
(рис. 8) Очередь сборки вручную

Для политик требуемых рецензентов (рис. 9) мы дали администраторам возможность указать заметку, которая будет добавлена к временной шкале запроса на вытягивание при применении политики (рис. 10) .

Диалоговое окно
(рис. 9) Диалоговое окно требуемых рецензентов
Обязательное примечание рецензента
(рис. 10) Заметка требуемых рецензентов

Новая политика для проверки на отсутствие активных комментариев

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

Усовершенствования центра файлов

Мы несколько обновили центр файлов, чтобы улучшить процесс просмотра и редактирования.

Из функций просмотра мы добавили сводки, позволяющие просматривать файл сведений в текущей папке (рис. 11) , осуществлять предварительный просмотр файлов Markdown, сравнивать файл с предыдущей версией (рис. 12) и просматривать обвинение.

Просмотр файлов
(рис. 11) Просмотр файлов
Граф Git
(рис. 12) Граф Git
>

При редактировании вы теперь можете просмотреть свои изменения, легко добавить комментарий, выполнить фиксацию в новой ветви и связать рабочие элементы (рис. 13) .

Редактирование файлов
(рис. 13) Редактирование файлов

Визуализация репозитория Git

Теперь вы можете просмотреть граф при отображении журнала фиксаций для репозиториев или файлов. Это позволяет легко создать ментальную модель всех ветвей и фиксаций для ваших репозиториев Git с помощью графа Git (рис. 14) . Граф показывает все фиксации в топологическом порядке.

Граф Git
(рис. 14) Граф Git

К ключевым элементам графа Git относятся следующие (рис. 15) :

  1. Граф Git выровнен по правому краю, поэтому фиксации, сопоставленные с ветвью по умолчанию или выбранной ветвью, отображаются справа, а остальная часть графа — слева.
  2. Фиксации слияний обозначаются серыми точками, соединенными с первым и вторым родительским элементом.
  3. Обычные фиксации обозначаются синими точками.
  4. Если родительская фиксация фиксации не отображается в просматриваемом периоде для следующих 50 фиксаций, это соединение с фиксацией удаляется. После нажатия кнопки со стрелкой фиксация соединяется с ее родительской фиксацией.
Элементы графа Git
(рис. 15) Элементы графа Git

Просмотр тегов Git для фиксаций

Если ваша команда использовала теги Git для пометки определенной точки в журнале репозитория, теперь фиксации отображают их. Вы можете просматривать теги (рис. 16) для определенной фиксации в представлении списка фиксаций и на странице сведений.

Отображение тегов
(рис. 16) Отображение тегов

Добавление тегов к фиксациям

Вместо создания тегов из командной строки и отправки их в репозиторий теперь можно просто перейти к фиксации и добавить тег (рис. 17) . Диалоговое окно создания тегов также позволяет пометить любую другую ссылку для репозитория.

Создание сведений о теге
(рис. 17) Сведения о создании тегов

Представление списка фиксаций также поддерживает контекстное меню (рис. 18) . Для создания тегов и ветвей не нужно переходить на страницу сведений о фиксации(рис. 19) .

Создание журнала тегов
(рис. 18) Журнал создания тегов
Ветвь тегов
(рис. 19) Ветвь тега

Обновленные страницы набора изменений и набора отложенных изменений

Мы обновили страницы набора изменений и набора отложенных изменений в TFVC. Обе страницы стали удобнее для людей, использующих специальные возможности. Кроме того, эти страницы имеют новый заголовок, содержащий название набора изменений и соответствующие сведения об этом наборе, например сведения об авторе (рис. 20) .

Страница
(рис. 20) Страница набора изменений

На страницах набора изменений и набора отложенных изменений теперь размещается новый элемент управления обсуждений Markdown (рис. 21), позволяющий вводить комментарии в Markdown, упоминать (@mention) пользователей, сопоставлять рабочие элементы с помощью #, а также легко вкладывать файлы и изображения.

Обсуждение набора изменений
(рис. 21) Обсуждение набора изменений

Улучшенная фильтрация фиксаций

Теперь вы можете фильтровать результаты журнала фиксаций (рис. 22) с помощью параметров расширенной фильтрации. Фиксации можно фильтровать по следующим критериям:

  • Полный журнал
  • Полный журнал с упрощенными слияниями
  • Первый родительский элемент
  • Простой журнал (это параметр фильтра по умолчанию)
Улучшена фильтрация фиксаций
(рис. 22) Улучшенная фильтрация фиксаций

Импорт репозиториев из TFVC в Git

Можно перенести код из ваших репозиториев TFVC в репозитории Git, относящиеся к той же учетной записи. Чтобы начать миграцию, выберите Импорт репозитория в раскрывающемся списке выбора репозитория (рис. 23) .

Раскрывающийся список селектора репозитория
(рис. 23) Раскрывающийся список выбора репозитория

В репозиторий Git можно импортировать отдельные папки или ветви либо весь репозиторий TFVC (кроме ветвей) (рис. 24) . Можно также импортировать журнал за период до 180 дней.  

Импорт репозитория завершен
(рис. 24) Импорт репозитория завершен

Блокировка файлов в Git LFS

Мы добавили функцию блокировки файлов в Git LFS. Она позволяет командам, работающим с большими неделимыми файлами, не потерять результаты, когда один файл пытаются изменить сразу несколько пользователей. Прежде чем кто-либо сможет изменить файл, он активирует блокировку с уведомлением сервера. Когда кто-то еще пытается установить блокировку, сервер отклоняет этот запрос и уведомляет второго пользователя о том, что с этим файлом уже ведется работа. Для использования этой функции обновите систему до Git LFS 2.1 или более поздней версии.

Комментарии фиксации Git используют новый элемент управления обсуждений.

Упрощенная функция комментариев для фиксаций Git была обновлена с применением нового элемента управления обсуждениями. Это обеспечивает поддержку Markdown в таких комментариях и дополняет все интернет-функции комментирования кода, чтобы в Git и TFVC использовалась актуальная процедура взаимодействия.

Элемент управления иерархического представления

Представление файлов запроса на включение внесенных изменений, сведения о фиксации Git, сведения о принудительной отправке в Git, сведения о наборе отложенных изменений TFVC, сведения о наборе изменений TFVC, центр наборов изменений TFVC и центр журнала Git были обновлены для использования нового элемента управления иерархического представления (рис. 25) .  Внесено несколько улучшений для повышения удобства работы с представлением в виде дерева.  Во-первых, мы изменили представление, чтобы отобразить сжатое представление в виде дерева, которое автоматически сворачивает узлы пустых папок, что позволяет отобразить в представлении максимальное количество файлов.  

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

Новое представление в виде дерева
(рис. 25)Новое представление в виде дерева

Усовершенствования запросов на вытягивание

Улучшенные призывы к действию для автора и рецензентов запроса на включение внесенных изменений

Командам, использующим политики ветви, иногда бывает трудно понять, какое именно действие требуется при просмотре вами запроса на включение внесенных изменений. Если основной призыв к действию выражен кнопкой Завершить, значит ли, что процесс готов к завершению? С помощью сведений о пользователе, просматривающем страницу, и состоянии настроенных политик ветви представление запроса на включение внесенных изменений теперь будет отображать наиболее осмысленный для пользователя призыв к действию.

Когда политики настроены, но еще не применяются, кнопка Завершить(рис. 26) будет предлагать воспользоваться функцией Автозавершение.  Маловероятно, что вы сможете успешно завершить запрос на вытягивание, когда политики блокируют работу, поэтому мы предлагаем возможность завершить запрос после применения этих политик.

Функция автозаполнения
(рис. 26) Функция автозавершения

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

Утверждение CTA
(рис. 27) Утверждение призыва к действию

После утверждения рецензенты увидят, что в случаях, когда рецензент также является пользователем, выполняющим запрос на включение внесенных изменений, в качестве основного призыва к действию выделена кнопка Завершить (или Автозавершение).

Действия на основе комментариев

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

  • В заголовке каждого запроса на вытягивание теперь отображается число разрешенных комментариев (рис. 28) .
Заголовок PR
(рис. 28) Заголовок запроса на включение внесенных изменений
  • Если комментарий обработан, вы можете разрешить его одним щелчком (рис. 29)
Кнопка
(рис. 29) Кнопка "Разрешить"
  • Если вы хотите добавить комментарии при разрешении, можно ответить и разрешить одним действием (рис. 30) .
Ответ и разрешение
(рис. 30) Ответ и разрешение
  • По мере разрешения комментариев счетчик увеличивается, пока не будут обработаны все комментарии (рис. 31) .
Частота адресов примечаний
(рис. 31) Число обработанных комментариев
  • Фильтр в обзоре был усовершенствован, чтобы улучшить фильтрацию по различным состояниям комментариев и отобразить число комментариев для каждого параметра фильтра (рис. 32) .
Усовершенствования фильтров
(рис. 32) Усовершенствования фильтра

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

Улучшена вкладка Обновления в представлении Сведения о запросе на включение внесенных изменений, чтобы показать, когда произошла принудительная отправка и изменилась ли базовая фиксация (рис. 33) .  Две эти функции крайне полезны, если вы перемещаете изменения в тематических ветках перед завершением запроса на вытягивание.  Теперь рецензенты получат достаточно сведений, чтобы точно знать, что именно произошло.

представления Обновления
(рис. 33) Представления обновлений

Фильтрация запросов на включение внесенных изменений по людям

Теперь найти запросы на вытягивание стало еще проще. Мы добавили новые параметры фильтрации, чтобы вы могли найти запросы на вытягивание, созданные определенным автором или назначенные конкретному рецензенту (рис. 34) . Просто выберите пользователя в фильтре авторов или рецензентов, чтобы обновить список для отображения только соответствующих запросов. 

Фильтрация по людям
(рис. 34) Фильтрация по людям

Причина, необходимая при обходе политик запросов на включение внесенных изменений

При обходе политик запросов на включение внесенных изменений нужно указать причину.  В диалоговом окне Завершение запроса на включение внесенных изменений вы увидите новое поле Причина, если решите сделать обход (рис. 35) .

Диалоговое окно
(рис. 35) Диалоговое окно обхода

После указания причины и завершения запроса на вытягивание в поле Обзор отображается сообщение (рис. 36).

Обход сообщения
(рис. 36) Сообщение об обходе

Использование запросов на включение внесенных изменений совместно с командами

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

Совместное использование запроса на вытягивание с командами
(рис. 37) Совместное использование запроса на включение внесенных изменений вместе с командами

Усовершенствования запросов на включение внесенных изменений для команд

Если вы являетесь членом нескольких команд, то увидите все назначенные им запросы на вытягивание, которые перечислены в представлении Мои запросы на вытягивание(рис. 38) . Это позволяет использовать представление Мои запросы на включение внесенных изменений в качестве единого расположения для просмотра всех запросов.

Улучшения pr-запросов для команд
(рис. 38) Усовершенствования запросов на включение внесенных изменений для команд

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

Уведомления по умолчанию для комментариев запроса на включение внесенных изменений

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

Уведомления о запросах на вытягивание по умолчанию
(рис. 39) Уведомления для запросов на включение внесенных изменений по умолчанию

Эти уведомления доступны в рамках готовых подписок, и их можно настроить на странице параметров Уведомления

Усовершенствования управления пакетами

Обновленная процедура управления пакетами

Мы обновили процедуру управления пакетами, чтобы ускорить работу, устранить распространенные проблемы, а также подготовить основу для готовящихся к выпуску функций жизненного цикла пакетов (рис. 40) .  Дополнительные сведения об обновлении см. на странице Обновленное взаимодействие.

Управление пакетами
(рис. 40) Управление пакетами

Управление пакетами добавляет файлы сведений npm и кнопку скачивания

Теперь вы можете просмотреть файл сведений для любого пакета npm, содержащего файл README.md (рис. 41) . Файлы сведений могут помочь команде документировать знания о пакетах и обмениваться ими.

Вы также можете скачать любой пакет npm с помощью кнопки Скачать на панели команд.

Файл сведений npm для управления пакетами
(рис. 41) Файл сведений npm для управления пакетами

Задачи сборки «Восстановление NuGet» и «Команда NuGet»

Мы внесли значительные изменения в задачу Установщик NuGet (теперь она называется Восстановление NuGet) и добавили новую задачу NuGet: команда NuGet. Прежде всего, задачи Команда NuGet и Восстановление NuGet теперь по умолчанию используют nuget.exe 4.0.0.

Задача Восстановление NuGet теперь оптимизирована для наиболее часто используемого сценария восстановления пакетов перед шагом сборки Visual Studio. Кроме того, для нее улучшена поддержка небольших проектов, которые совместно используют один веб-канал NuGet: теперь можно выбрать веб-канал Team Services, чтобы добавить его в автоматически созданный файл NuGet.Config.

Для более сложных операций NuGet задача Команда NuGet позволяет указать команду и набор аргументов (рис. 42) .

Команда NuGet
(рис. 42) Команда NuGet

Усовершенствования сборки и выпуска

Новый редактор определений сборки

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

Поиск шаблонов

Найдите нужный шаблон и примените его или начните работу с пустым процессом (рис. 43) .

Поиск шаблона сборки
(рис. 43) Поиск шаблона сборки

Быстрый поиск задач и их точное добавление

Найдя нужную задачу, вы можете добавить ее после выбранной задачи в левой части окна или перетащить в нужное место (рис. 44) .

Поиск задач сборки
(рис. 44) Поиск задачи сборки

Вы также можете перетащить задачу для перемещения или перетащить ее, удерживая клавишу CTRL, для копирования.

Использование параметров процесса для передачи ключевых аргументов в задачи

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

Параметры процесса
(рис. 45) Параметры процесса

Если вы создаете сборку из некоторых встроенных шаблонов (например, Visual Studio и Maven), можете просмотреть соответствующие примеры.   Новый редактор включает несколько других улучшений, например ускоренный доступ к параметрам источников.

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

Дополнительные сведения см. на странице о взаимодействии с пользователем в версии 2017.

Несколько версий задач расширений

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

См. раздел справочных сведений о созданий пользовательских задач сборки в расширениях.

Условные задачи сборки

Если вы хотите лучше контролировать свои задачи сборки, например задачу по очистке данных или отправке сообщения при возникновении проблем, мы предлагаем четыре встроенных средства управления выполняемой задачей (рис. 46) .

Задачи условной сборки
(рис. 46) Условные задачи сборки

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

and(failed(), eq(variables['Build.Reason'], 'PullRequest'))

См. страницу Задание условий для выполнения задачи.

Встроенные задачи для создания и развертывания приложений на основе контейнера

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

  • Docker: создание, отправка или запуск образов Docker либо выполнение команд Docker. Эту задачу можно использовать в Docker или реестре контейнеров Azure. Теперь вы можете использовать встроенную проверку подлинности на основе субъекта-службы с ACR, чтобы еще больше упростить работу.
  • Docker-Compose: создание, отправка или запуск многоконтейнерных приложений Docker. Эту задачу можно использовать в Docker или реестре контейнеров Azure.
  • Kubernetes: развертывание, настройка и обновление кластера Kubernetes в службе контейнеров Azure с помощью команд kubectl.
  • Service Fabric: развертывание контейнеров в кластере Service Fabric. Сейчас Service Fabric является оптимальным средством для запуска контейнеров Windows в облаке.

Обновления для развертывания веб-приложения Azure

Мы внесли множество улучшений для веб-приложений Azure:

  • Задача развертывания службы приложений Azure позволяет развертывать WAR-файлы Java, Node.js, Python и приложения PHP.
  • Задача развертывания службы приложений Azure поддерживает развертывание в веб-приложение Azure для Linux с помощью контейнеров.
  • Непрерывная поставка на портале Azure расширена и теперь поддерживает приложения Node.
  • Задача управления службы приложений Azure добавлена в операции запуска, остановки, перезапуска или переключения слотов для службы приложений Azure. Она также поддерживает установку расширений сайта, чтобы можно было установить требуемую версию PHP или Python, или установку диспетчера служб IIS или Application Insights.

В последней версии Azure CLI также появилась поддержка для настройки непрерывной интеграции и непрерывной поставки. Пример:

az appservice web source-control config --name mywebapp --resource-group mywebapp_rg --repo-url https://myaccount.visualstudio.com/myproject/_git/myrepo --cd-provider vsts --cd-app-type AspNetCore

Задачи .NET Core поддерживают файлы проектов.

В данном обновлении мы усовершенствуем задачи .NET Core, реализовав поддержку файлов *.csproj в дополнение к project.json. Теперь вы можете использовать Visual Studio 2017 на агентах сборки, чтобы создавать приложения .NET Core с помощью CSPROJ-файлов.

Усовершенствования развертывания через SSH

Задача сборки/выпуска Копировать файлы по SSH теперь поддерживает тильды (\~) в пути назначения, чтобы упростить копирование файлов в основной каталог удаленного пользователя.   Кроме того, новый параметр вызывает сбой сборки/выпуска, если не найдены файлы для копирования.

Задача сборки/выпуска SSH теперь поддерживает запуск скриптов с окончаниями строки Windows на удаленных компьютерах с macOS или Linux.

Установка ключа SSH во время сборки или выпуска

Новая задача предварительного просмотра Install SSH Key (Preview) (Установить ключ SSH (предварительная версия)) устанавливает ключ SSH перед сборкой или выпуском и удаляет его из агента после их завершения. Установленный ключ можно использовать для получения кода из подмодулей или репозитория Git, запуска скриптов развертывания или других операций, требующих проверку подлинности SSH. В будущем эта функция будет доработана, чтобы поддерживать парольные фразы и другие возможности.

Задачи завершаются ошибкой, если система Visual Studio 2017 задана, но отсутствует на агенте.

Задачи Сборка Visual Studio и MSBuild позволяют выбрать конкретную версию Visual Studio. Раньше, если Visual Studio 2017 отсутствовала, эти задачи автоматически выбирали следующую доступную версию.

Мы решили изменить это поведение. Теперь, если вы выбираете Visual Studio 2017, которая отсутствует на агенте, сборка завершается со сбоем.

Это изменение было внесено по следующим причинам:

  • Новые типы приложений, такие как .NET Core, не компилируются с помощью старых версий средств сборки. Им требуется Visual Studio 2017 или более новой версии.

  • Используя точно такую же версию Visual Studio, вы получаете более согласованный и предсказуемый результат.

  • В случае отката задач сборки могут возникнуть трудные для восприятия ошибки компиляции.

Совет

Убедитесь, что используется очередь, подключенная к пулу с агентами, использующими Visual Studio 2017, и без агентов, использующих более ранние версии Visual Studio.

Автоматическая очистка рабочей области частного агента

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

Обслуживание агента
(рис. 47) Обслуживание агента

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

Состояние обновления агента сборки

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

Выбор частных агентов на неиспользуемых компьютерах

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

Очередь конвейеров

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

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

1. Сборки и выпуски, ожидающие выполнения конвейера, и их положение в очереди ожидания. 2. Сборки и выпуски, выполняющиеся с помощью доступных конвейеров.

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

Действие "Выпуск" в сводке "Сборка"

Теперь поддерживается действие Выпуск, доступное в панели действий для сводных данных Сборка, что упрощает создание выпуска для сборки.

Безопасность для групп переменных

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

По умолчанию назначены приведенные ниже роли.

  • Роль "Автор" для участников
  • Роль "Администратор" для администраторов коллекции проектов, администраторов проектов, администраторов сборок и администраторов выпусков
  • Роль "Читатель" для допустимых пользователей проекта

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

Усовершенствования DevOps для iOS

Расширение Apple App Store теперь поддерживает двухфакторную проверку подлинности и выпуск сборок для внешних тест-инженеров (рис. 48) .

Подключение apple App Store
(рис. 48) Подключение к Apple App Store

Install Apple Certificate (Preview) (Установить сертификат Apple (предварительная версия)) — это новая задача сборки, устанавливающая на агенте сертификат для подписи P12, чтобы его использовала последующая сборка Xcode или Xamarin.iOS.

Install Apple Certificate (Preview) (Установить сертификат Apple (предварительная версия)) — это новая задача сборки, устанавливающая на агенте сертификат для подписи P12, чтобы его использовала последующая сборка Xcode или Xamarin.iOS.

Задачи сборки MSBuild, Xamarin.Android и Xamarin.iOS теперь поддерживают сборку с помощью набора инструментов Visual Studio для Mac.

Усовершенствования для объема протестированного кода Java

Задача сборки Опубликовать результаты оценки объемов протестированного кода сообщает объем протестированного кода Cobertura или JaCoCo в рамках сборки.   Теперь она поддерживает подстановочные знаки и шаблоны minimatch в полях Файл сводки и Каталог отчета, позволяя разрешать файлы и каталоги по отдельным сборкам для путей, которые изменяют между сборками.

Усовершенствования Maven и SonarQube

Задача сборки Maven теперь позволяет задать проект SonarQube для результатов анализа в случаях, когда он отличается от данных в файле pom.xml Maven.

Улучшенная интеграция Jenkins

Задача сборки/выпуска Задание в очереди Jenkins теперь поддерживает выполнение заданий Jenkins типа "Конвейер с многократным ветвлением" при отображении выходных данных консоли в Team Services (рис. 49) .   Результаты конвейера публикуются в сводке по сборке Team Services.

Улучшенная интеграция Jenkins
(рис. 49) Улучшенная интеграция Jenkins

Развертывание масштабируемого набора виртуальных машин Azure

Типичный шаблон, используемый для развертывания, заключается в создании полного образа компьютера для каждой версии приложения и последующего его развертывания. Для упрощения этого процесса служит новая задача Build immutable machine image (Сборка неизменяемого образа компьютера). Эта задача использует Packer для создания образа компьютера после развертывания приложений и всех необходимых компонентов. Задача принимает скрипт развертывания или шаблон конфигурации Packer для создания образа компьютера и сохраняет его в учетной записи службы хранилища Azure. Затем этот образ можно использовать для развертываний масштабируемого набора виртуальных машин Azure, что отлично подходит для этого типа развертывания неизменяемого образа.

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

Сейчас в задачах развертывания групп ресурсов Azure пользователи выбирают файлы template.json и parameters.json, а так же задают значения параметров переопределения в текстовом поле, следуя определенному синтаксису. Теперь эта процедура улучшена. Параметры шаблона отображаются в виде таблицы, где их можно редактировать и переопределять (рис. 50) . Эту функцию можно открыть, щелкнув ... рядом с полем параметров переопределения. При этом открывается диалоговое окно с параметрами шаблона, их значениями по умолчанию и допустимыми значениями (если они определены в JSON-файлах шаблонов и параметров). Для использования этой функции требуется включить правила CORS в источнике. Если JSON-файлы шаблонов и параметров находятся в BLOB-объекте службы хранилища Azure, см. документацию по службам хранилища Azure для включения CORS.

Параметры Azure RG
(рис. 50) Параметры групп ресурсов Azure

Несколько триггеров выпуска с фильтрами ветвей и тегов

Управление выпусками теперь поддерживает задание триггеров непрерывной поставки для нескольких источников артефактов типа "Сборка". При добавлении новый выпуск добавляется автоматически, если доступна новая версия артефакта для любого из указанных источников артефактов. Можно также указать, к какой исходной ветви должна принадлежать новая сборка, чтобы активировать выпуск. Кроме того, можно задать фильтры тегов для дополнительного уточнения сборок, которые должны активировать выпуск.

Настройка параметров по умолчанию для источников артефактов в выпуске

Пользователи могут определить версию артефакта по умолчанию для развертывания в выпуске при связывании источника артефакта в определении (рис. 51) . Когда выпуск создается автоматически, будет разворачиваться версия по умолчанию для всех источников артефактов.

Версия артефакта по умолчанию
(рис. 51) Версия артефакта по умолчанию

Разделение обязанностей для инициатора и утверждающих развертывания

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

Теперь мы устранили эту недоработку, рассматривая создателя развертывания как отдельную роль пользователя для развертываний. Теперь утверждение развертываний можно запретить как создателю выпуска, так и создателю развертывания.

Утверждения на уровне выпуска

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

Предположим, что у вас есть два окружения — "Разработка" и "Тестирование", а обязанности по утверждению перед развертыванием несут "пользователь_А" и "пользователь_Б", причем утверждение должно быть получено у них обоих. Если политика для окружения "Тестирование" настроена указанным ниже образом, во время развертывания пользователям А и Б будет достаточно утвердить только окружение "Разработка". Развертывания в окружении "Тестирование" будет выполнено автоматически. Если развертывание в окружении "Тестирование" запускается вручную, потребуется получить утверждения перед развертыванием.

Утверждения на уровне выпуска
(рис. 52) Утверждения на уровне выпуска

Развертывание в облако Azure для государственных организаций

Теперь клиенты с подписками Azure на облака для государственных организаций могут настроить конечную точку Azure Resource Manager для целевых государственных облаков.

Таким образом, теперь можно использовать Release Management для развертывания любого приложения в ресурсах Azure, размещенных в облаках для государственных организаций, с помощью одинаковых задач развертывания (рис. 53) .

Облако для государственных организаций
(рис. 53) Облако для государственных организаций

Указание максимального числа параллельных развертываний

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

Параллельные развертывания
(рис. 54) Параллельные развертывания

Усовершенствования времени ожидания для задачи вмешательства вручную

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

Параллельное выполнение Release Management

Release Management теперь поддерживает параметр параллельного выполнения для этапа (рис. 55) . Выберите его, чтобы развернуть этап с параметром "Несколько агентов" или "Мультиконфигурация" в качестве множителя этапа.

Поддержка параллельного выполнения
(рис. 55) Поддержка параллельного выполнения

"Мультиконфигурация": выберите этот параметр, чтобы запустить этап для каждого значения мультиконфигурации. Например, если нужно выполнить развертывание в двух разных геообъектах одновременно, то используя переменную ReleasePlatform, определенную на вкладке "Переменные", со значениями "Восток США, Запад США" можно запустить этап параллельно — один со значением "Восток США" и другой со значением "Запад США". Несколько агентов: выберите этот параметр, чтобы запустить этап с одной или несколькими задачами на нескольких агентах в параллельном режиме.

Журнал развертывания веб-приложения на портале Azure

Release Management теперь обновляет журналы развертывания службы приложений Azure, если развертывание выполняется с помощью задачи развертывания службы приложений. Вы можете просмотреть журнал развертывания на портале Azure, выбрав параметр Непрерывная поставка в колонке Служба приложений.

Улучшения тестирования

Выполнение тестов с использованием этапов агента

Благодаря задаче теста Visual Studio автоматические тесты теперь можно запустить с помощью этапов агента (рис. 56) .

Теперь у нас есть унифицированный агент автоматизации для сборки, выпуска и тестирования. Это дает следующие преимущества:

  1. Вы можете использовать пул агентов для тестирования.
  2. Выполняйте тесты в разных режимах, используя одну задачу теста Visual Studio в зависимости от потребностей — одноагентный запуск, многоагентный распределенный тестовый запуск или запуск с несколькими конфигурациями, например, для охвата разных браузеров.
Выполнение тестов с использованием этапов агента
(рис. 56) Запуск тестов с использованием этапов агента

Дополнительные сведения см. в этой публикации на сайте по управлению жизненным циклом приложений Майкрософт.

Активация автоматических тестов по запросу

Центр тестирования теперь поддерживает активацию автоматических тестовых случаев из планов тестирования и наборов тестов (рис. 57) . Для запуска автоматических тестов из центра тестирования потребуется настройка, аналогичная той, которая используется при выполнении тестов по расписанию в окружениях выпуска. Вам потребуется настроить окружение в определении выпуска, используя шаблон Run automated tests from test plans (Запуск автоматических тестов из планов тестирования), и сопоставить план тестирования для запуска автоматических тестов. В документации приведены пошаговые инструкции по настройке окружения и запуску автоматических тестов из центра тестирования.

Триггер автоматических тестов по запросу
(рис. 57) Активация автоматических тестов по запросу

Улучшения хранилища

Улучшение скорости обработки кубов в Analysis Services

Мы усовершенствовали представление vDimWorkItemTreeOverlay, которое используется для создания измерения Дерево рабочих элементов на основе ссылок. Хотя оно опирается на ссылки System.LinkTypes.Hierarchy, мы обнаружили, что на длительность обработки влияли и другие ссылки (например, System.LinkTypes.Related). Теперь представление пропускает дополнительные типы ссылок, что ограничивает объем считываемых данных. Это изменение значительно уменьшает время обработки для определенных хранилищ.

Выверка схемы без учета регистра

Схема базы данных хранилища создается путем объединения полей из всех подключенных баз данных коллекции в процессе выверки схемы. В предыдущих версиях при всех сравнениях учитывался регистр, так что администраторам нужно было проверять, точно ли совпадают имена ссылок на поля. Из-за этого при труднозаметных отличиях в регистре возникали проблемы. В этом выпуске мы сделали этот процесс более устойчивым к таким расхождениям.

Улучшения администрирования

Объединение получателей электронной почты для уведомлений

Получатели одного уведомления по электронной почте теперь все вместе включаются в строку "Кому:" для отправки им одного сообщения. Ранее каждому из получателей направлялось отдельное сообщение. Это затрудняло определение круга лиц, получивших уведомление, а также обсуждение события по электронной почте. Эта функция применяется для готовых и командных подписок, которые могут охватывать нескольких получателей. Например, все рецензенты запроса на включение внесенных изменений теперь отправляют одно сообщение электронной почты при внесении изменения в запрос.

Вы можете ознакомиться с дополнительными сведениями об объединении получателей электронной почты.

Готовые уведомления

Пользователи и команды теперь автоматически получают уведомление по электронной почте при наличии связанных с ними действий в учетной записи, например:

  • когда пользователю назначен рабочий элемент;
  • когда пользователь или команда добавляется в качестве рецензента для запроса на включение внесенных изменений;
  • когда пользователь или команда является рецензентом для обновленного запроса на включение внесенных изменений;
  • когда другой пользователь отвечает на комментарий по запросу на включение внесенных изменений;
  • при завершении запрошенной пользователем сборки;
  • при установке или запросе расширения (только для администраторов).

Пользователи могут отменить любую из этих подписок, перейдя к параметрам Уведомление в меню профиля пользователя и отключив соответствующие переключатели.

Администратор учетных записей может отключить одну или несколько из этих автоматических подписок, перейдя в центр Уведомления через значок шестеренки. Любую из этих подписок можно отключить, щелкнув параметр Отключить под действием "...". После отключения подписка больше не отображается для пользователей на их странице параметров личных уведомлений.

Вы можете подробнее узнать о готовых уведомлениях.

Разрешения на управление расширениями

Теперь администратор может предоставлять другим пользователям или командам разрешения на управление расширениями для коллекции (рис. 58) . Ранее только администраторы коллекции (т. е. члены команды "Администраторы коллекции проектов") могли просматривать запросы расширений, а также устанавливать, отключать или удалить расширения. 

Чтобы предоставить это разрешение, администратор может перейти в центр администрирования расширений, открыв меню Marketplace, выбрав "Управление расширениями" и нажав кнопку "Безопасность":

Разрешения на управление расширениями
(рис. 58) Разрешения на управление расширениями

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

Теперь администраторы, а также пользователи, способные управлять расширениями, автоматически уведомляются о том, что расширение установлено, удалено, включено, отключено или требует внимания. Это особенно полезно в крупных развертываниях, где управлять расширениями могут несколько пользователей. Администраторы могут отключить эти уведомления, перейдя к параметрам Уведомление в меню профиля и отключив переключатель расширений.

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

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

Предоставление администраторам TFS возможности добавлять подписчиков на расширенный уровень доступа

Уровень доступа Расширенный будет удален из будущих версий Team Foundation Server. Но до этого момента администраторы TFS смогут добавлять подписчиков платформы MSDN и Visual Studio Test Professional на уровень доступа Расширенный с помощью обновления 2.

Подписчиков Visual Studio Enterprise следует добавлять на уровень доступа Visual Studio Enterprise вместо Расширенный. Если вы приобрели расширение Test Manager, продолжайте управлять им из центра пользователей в командном проекте, где совершалась покупка.

Интеграция с Microsoft Teams

Организации, использующие Microsoft Teams для совместной работы, теперь могут видеть действия из проектов TFS в каналах своих команд. Это позволяет командам получать актуальную информацию о важных изменениях рабочих элементов, запросах на включение внесенных изменений, сборках, выпусках и многом другом при работе в Microsoft Teams. Дополнительные сведения см. в документации.


Известные проблемы

Формы рабочих элементов отображаются в веб-клиенте неправильно.

  • Проблема.

    Если у вас есть пользовательский элемент управления, например элемент управления с несколькими значениями, установленный для клиента Visual Studio, но не для веб-клиента, формы рабочих элементов в веб-клиенте не будут отображаться.

  • Инструкции по решению:

    Потребуется выполнить обновление до последней версии элемента управления. Нужно добавить веб-макет, который не содержит неотображаемый элемент управления. Последнюю версию элемента управления с несколькими значениями для TFS 2017 с обновлением можно найти на странице пользовательских элементов управления для отслеживания рабочих элементов TFS. Подробнее о макете см. на странице справочника по всем XML-элементам FORM (TFS 2015).

Версия TFS является версией-кандидатом 2, а не окончательной версией

  • Проблема.

    После скачивания TFS 2017 с обновлением 2 до 1 августа 2017 г. и установки вы получите версию-кандидат 2.

  • Инструкции по решению:

    Эта было связано с временной проблемой со ссылками на установку, которая была устранена 1 августа 2017 г. Скачайте TFS 2017 с обновлением 2 повторно и установите этот окончательный выпуск.

Вы можете ознакомиться с проблемами в Team Foundation Server 2017, о которых сообщали клиенты.

Портал Сообщество разработчиков


Отзывы и предложения

Мы будем рады узнать ваше мнение! Сообщить о проблеме и отслеживать ее можно с помощью портала сообщества разработчиков, а получить совет можно на сайте Stack Overflow.


К началу страницы