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


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


Примечание

Если вы открываете локализованную версию этой страницы и хотите просмотреть актуальные материалы, посетите страницу "Заметки о выпуске" на английском языке. Язык этой страницы можно изменить, щелкнув значок глобуса в нижнем колонтитуле страницы и выбрав нужный язык.


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

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

Дополнительные сведения о Team Foundation Server 2018 см. на странице . Вы можете скачать другие продукты TFS 2018 на странице visualstudio.com/downloads.

Прямое обновление для Team Foundation Server 2018 с обновлением 2 поддерживается начиная с версии Team Foundation Server 2012. Если ваше развертывание TFS основано на TFS 2010 или более ранней версии, необходимо выполнить промежуточные действия перед обновлением до TFS 2018 с обновлением 2. Дополнительные сведения см. на диаграмме ниже и на странице по установке TFS.

Матрица обновления TFS
Таблица обновлений TFS

Важно!

Обновление до RTM-версии TFS 2018 перед обновлением до TFS 2018 с обновлением 2 не требуется.


Значок Дата выпуска: 7 мая 2018 г.

Теперь вы можете использовать TFS 2018 с обновлением 2, по-прежнему подключая контроллеры XAML и запуская сборки XAML. Когда мы прекратим поддержку сборки XAML в TFS 2018 RTW и обновлении 1, вы не сможете выполнить обновление из-за наличия устаревших сборок XAML. Поэтому мы хотим помочь вам. Хотя TFS 2018 с обновлением 2 поддерживает устаревшие сборки XAML, их не рекомендуется использовать из-за ожидаемого прекращения поддержки. Поэтому вам следует выполнять преобразование в более новый формат определения сборки.

Сводка новых возможностей TFS 2018 с обновлением 2

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


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

Сведения о функциях можно найти в каждой области:

Код

При просмотре файла вы обычно видите версию на вершине выбранной ветви. Версия файла на вершине может измениться после новых фиксаций. Ссылки, скопированные из этого представления, могут устаревать, поскольку URL-адрес включает только имя ветви, а не фиксации SHA. Теперь вы можете легко переключать представление Файлы, чтобы обновить URL-адрес и ссылаться на фиксацию, а не на ветвь. Если нажать клавишу Y, представление будет переключено на верхнюю фиксацию текущей ветви. Затем можно скопировать постоянные ссылки.

Восстановление недавно удаленного репозитория через API

Иногда старые репозитории в системе управления версиями могут быть удалены по ошибке. Если репозиторий Git был удален за последние 30 дней, его можно восстановить с помощью REST API. Дополнительные сведения см. в документации для операций списка и восстановления.

SSH: поддержка дополнительных шифров и ключей и объявление устаревших шифров нерекомендуемыми

Для повышения безопасности и совместимости мы обновили поддерживаемый список шифров для SSH. Мы добавили два новых шифра и сделали три других нерекомендуемыми в соответствии с указаниями OpenSSH. Устаревшие шифры будут работать в этом выпуске. Они будут удалены в будущем, когда их перестанут использовать.

Добавлено:

  • AES128 CTR
  • AES256 CTR

Не рекомендуется:

  • AES128
  • AES192
  • AES256

Предотвращение перезаписи и защита производительности с помощью параметров репозитория

В этом обновлении вы найдете два новых параметра репозитория для оптимизации работы Git.

Обязательный учет регистра. Переводит сервер из режима учета регистра по умолчанию, где "Файл.txt" и "файл.txt" ссылаются на один и тот же файл, в режим, более подходящий для Windows и macOS, где "Файл.txt" и "файл.txt" являются одним и тем же файлом. Этот параметр распространяется на файлы, папки, ветви и теги. Он также препятствует случайному созданию объектов, отличающихся только регистром. Принудительное применение регистра рекомендуется в случае, когда большинство участников работают в Windows или macOS.

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

принудительное применение обращения

Расширенные возможности фильтра для фиксаций с изменением более 1000 файлов

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

Поиск фиксаций, потерянных в результате принудительной отправки

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

принудительная отправка

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

удалены фиксации

Теперь ведется журнал обвинений

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

История обвинений

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

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

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

Шестеренка редактора

Выберите различные возможности редактора, в том числе Отображать пробелы и учитывать их при сравнении, Включить перенос по словам, Включить свертывание кода и Показать мини-карту.

Редактор perfs

Свертывание кода (в некоторых редакторах называется структурированием) также включается для веб-представления. Когда свертывание кода включено, нажмите на знак "минус", чтобы свернуть разделы кода, и на знак "плюс", чтобы развернуть свернутые разделы. В палитре команд F1 также представлены параметры для свертывания различных уровней отступа по всему файлу, чтобы упростить чтение и просмотр больших файлов.

Свертывание кода

Отслеживание вживлений кода в репозиторий Git для сборок и выпусков

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

Отправка состояния ci-cd

Разметка Markdown в уведомлениях по электронной почте

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

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

Markdown уведомления о запросе на вытягивание

Выполнение команд TFVC прямо из проводника Windows

Расширение оболочки Windows для TFVC, которое встраивает облегченные функции управления версиями в проводник Windows, теперь поддерживает TFS 2018. Это средство предоставляет удобный доступ ко многим командам TFVC прямо в контекстном меню проводника Windows.

Ранее это средство входило в комплект TFS Power, а теперь выпущено в виде отдельного средства в Visual Studio Marketplace.

Расширение оболочки

Контроль доступа к запросам на вытягивание

Ранее любой пользователь с правом просмотра репозиториев Git мог работать с запросами на вытягивание. Мы добавили новое разрешение, которое называется Участие в запросах на вытягивание. Оно управляет доступом для создания запросов на вытягивание и добавления комментариев к ним. Все пользователи и группы, у которых было разрешение на Чтение, также получают это новое разрешение по умолчанию. Благодаря этому новому разрешению администраторы получают дополнительные возможности контроля. Если ваша группа читателей может действительно только читать, вы можете отозвать разрешение Участие в запросах на вытягивание.

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

Уведомления о комментариях к запросам на вытягивание содержат контекст потока

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

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

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

Параметры выполнения рабочих элементов

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

Расширяемость состояния запроса на вытягивание

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

Когда служба передает данные в API состояния запроса на вытягивание, она сразу же появляется в представлении сведений о запросе в новом разделе Состояние. В разделе состояния отображается описание и создается ссылка на URL-адрес, предоставленный службой. Записи состояния также поддерживают меню действий (...), в которое веб-расширения добавляют новые действия.

Раздел status

Само по себе состояние не блокирует выполнение запроса — за это отвечает политика. После публикации состояния запроса можно настроить политику. В интерфейсе работы с политикам ветвления доступна новая политика Требовать утверждения от внешних служб. Выберите + Добавить службу, чтобы начать процесс.

Добавление политики состояния

В диалоговом окне выберите в списке службу, публикующую состояние, и нужные параметры политики.

Диалоговое окно политики состояния

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

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

События объединения в перехватчиках событий для запросов на вытягивание

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

События слияния перехватчиков службы PR

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

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

Ошибка рабочих элементов PR

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

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

Чтобы упомянуть запрос на вытягивание, введите !. Откроется диалоговое окно с недавними запросами, где вы сможете выбрать нужный. Введите ключевые слова для фильтрации списка или введите идентификатор нужного запроса на вытягивание. Упомянутый запрос отобразится с идентификатором, полным названием и ссылкой на страницу сведений о запросе.

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

Удобная проверка с метками для запросов на вытягивание

Иногда необходимо сообщить рецензентам дополнительные сведения о запросе на вытягивание. Запрос на вытягивание может еще выполняться или представлять собой исправление предстоящего выпуска, поэтому вы можете добавить текст в заголовок, например префикс "[WIP]" или "DO NOT MERGE". Таким образом вы можете помечать запросы на вытягивание, чтобы указать дополнительные важные сведения и упорядочить запросы на вытягивание.

Метки запросов на вытягивание

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

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

Просмотр фиксации слияния для запроса на вытягивание

В представлениях различий для запросов на вытягивание выделяются изменения, внесенные в исходную ветвь. Однако при изменении целевой ветви представление различий может выглядеть не так, как ожидалось. Теперь доступна новая команда для просмотра отличий предварительной версии фиксации слияния для запросов на вытягивание — Просмотреть фиксацию слияния. Это фиксация слияния создается для проверки конфликтов слияния и использования со сборкой запроса на вытягивание. Она показывает, как будет выглядеть фиксация слияния, когда запрос на вытягивание будет завершен. Если в целевой ветви есть изменения, которые не отражаются в различиях, в различиях фиксации слияния можно просмотреть последние изменения в исходной и целевой ветви.

Просмотр фиксации слияния запроса на вытягивание

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

Недавно использовавшиеся рецензенты

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

Рецензенты MRU

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

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

Списки автоматического завершения запроса на вытягивание

Обсуждение математических выражений в запросах на вытягивание

Хотите включить в комментарии запроса на вытягивание уравнение или математическое выражение? Теперь можно использовать функции KaTeX в комментарии при внутристрочном или блоковом комментировании. Дополнительные сведения см. в списке поддерживаемых функций.

Pr Markdown комментарий с математическими вычислениями

Предложение создания запроса на вытягивание для вилок

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

Предложение запроса на вытягивание для вилок

Фильтры пути для политики запросов на вытягивание

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

Фильтры путей для политик запроса на вытягивание

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

Работа

Сочетания клавиш в форме рабочего элемента

Назначьте себе рабочий элемент (Alt + i), перейдите к обсуждению (Ctrl + Alt + d) и скопируйте быструю ссылку на рабочий элемент (Shift + Alt + c) с помощью сочетаний клавиш. Чтобы просмотреть весь список новых сочетаний клавиш, введите "?", когда открыта форма рабочего элемента, или обратитесь к следующей таблице.

Сочетания клавиш в форме рабочего элемента

Параметры модернизированных столбцов

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

Параметры модернизированного столбца

Сведения об инициаторе последнего запуска запроса

Когда дерево общих запросов в вашем проекте разрастается, бывает сложно определить, используется ли тот или иной запрос и можно ли его удалить. Чтобы вам было проще управлять общими запросами, мы добавили два новых элемента метаданных к REST API запросов: инициатор последнего запуска и дата последнего запуска. Теперь вы можете удалять устаревшие запросы и навести порядок в скриптах.

Опущение тегов HTML в сетках рабочих элементов

Про просьбам клиентов мы обновили поведение многострочных текстовых полей в представлениях результатов запроса рабочего элемента в браузере, Excel и Visual Studio IDE и удалили форматирование HTML. После добавления к запросу в качестве столбца многострочные текстовые поля теперь отображаются как обычный текст. Ниже приведен пример компонента с кодом HTML в описании.

Удаление html-тегов

Раньше результаты запроса отображались подобным образом: <div><b><u>Customer Value</u>...

Добавлена поддержка оператора запроса "Not In"

Поля, поддерживающие оператор запроса In, теперь поддерживают Not In. Создавайте для рабочих элементов запросы Not In, чтобы указать, что элемент находится не в списке идентификаторов, состояний и т. д., не создавая вложенные предложения Or.

Оператор запроса Not In

Запрос для @MyRecentActivity и @RecentMentions

Появилось два новых макроса запросов для поля Идентификатор, чтобы вам было проще найти нужные рабочие элементы. Узнайте, какие элементы вы упоминали за последние 30 дней, с помощью @RecentMentions, или просмотрите рабочие элементы, которые вы недавно просматривали или редактировали, с помощью @MyRecentActivity.

Фильтр настраиваемых полей и тегов в уведомлениях об отслеживании рабочих элементов

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

параметры уведомлений о настраиваемых рабочих элементах

Поддержка упоминаний на странице "Мои рабочие элементы"

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

упомянутая работа в разделе Мои рабочие элементы

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

упомянутая работа

Фильтрация планов

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

Фильтрация по планам

Обновленная навигация по планам

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

Обновленная навигация по планам

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

Теперь вы можете разворачивать и сворачивать все элементы на Доске задач спринта одним щелчком.

Развернуть свернуть доску задач

Разрешение на обход правил для определенных пользователей

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

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

Предоставление обхода

Сборка и выпуск

Сборки XAML

В Team Foundation Server 2015 была представлена кроссплатформенная система сборок. Сборки XAML не поддерживаются в TFS 2018 RTW или обновлении 1, но они повторно включены в TFS 2018 с обновлением 2. Мы рекомендуем выполнить перенос сборок XAML.

При обновлении до TFS 2018 с обновлением 2 происходит следующее.

  • Если в коллекции командных проектов есть данные сборок XAML, вы получите предупреждение о нерекомендуемых компонентах сборки XAML.

  • Чтобы изменить определения сборки XAML или поставить в очередь новые сборки XAML, потребуется использовать Visual Studio или Team Explorer 2017.

  • Если вам нужно создать новые агенты сборки XAML, их потребуется установить с помощью установщика агента сборки TFS 2015.

Объяснение планового устаревания сборки XAML см. в записи блога Развитие возможностей автоматизации сборки в TFS и Team Services.

Усовершенствования многоэтапных сборок

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

  • Указывать другой агент очереди для каждого этапа. Например:

    • Запустите один этап построения на агенте macOS, а другой — на агенте Windows. Интересный пример этой полезной функции смотрите в ролике Connect(); 2017: Конвейер CI/CD DevOps для мобильных приложений и служб.
    • Выполняйте шаги сборки в пуле агентов сборки, а шаги тестирования — в пуле агентов тестирования.
  • Быстрее выполнять тесты, запуская их параллельно. Теперь при использовании параллелизма, настроенного на работу с несколькими агентами, и задачи VSTest на любом этапе тесты будут автоматически выполняться параллельно в настроенных агентах.

  • Разрешить или запретить скриптам доступ к токену OAuth каждого этапа. Это означает, например, что вы можете разрешить скриптам на этапе сборки взаимодействовать с VSTS через REST API и в том же определении сборки блокировать скрипты, выполняющиеся на этапе тестирования.

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

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

Пропуск запланированных сборок при отсутствии изменений в репозитории

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

Сборки с непрерывной интеграцией из GitHub Enterprise

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

Параметр источника сборки GitHub Enterprise

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

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

Возможность установки профилей подготовки Apple из исходных репозиториев

Задача Установить профиль подготовки Apple уже поддерживает установку (на компьютерах агентов) профилей подготовки, которые хранятся в библиотеке защищенных файлов VSTS. Профили подготовки используются Xcode для подписания и упаковки приложений Apple, таких как iOS, macOS, tvOS и watchOS. Теперь профили подготовки Apple можно устанавливать из исходных репозиториев. Хотя для большей безопасности этих файлов рекомендуется использовать библиотеку защищенных файлов, это улучшение применяется к профилям подготовки, которые уже хранятся в системе управления версиями.

Подготовка Apple

Отслеживание источников GitHub до сборок с помощью тегов сборки

Сборки из GitHub или GitHub Enterprise уже привязаны к соответствующим фиксациям. Также важно иметь возможность проследить сборки, с которыми была создана фиксация. Теперь это возможно благодаря включению тегов источника в TFS. При выборе репозитория GitHub в определении сборки выберите типы сборок, которые следует пометить, а также формат тега.

Параметры источников тегов

Затем теги сборки отобразятся в репозитории GitHub или GitHub Enterprise.

Примеры источников с тегами в GitHub

Возможность установки определенных пакетов средств разработки Java (пакетов JDK) в процессе сборки и выпуска

При создании определенных типов проектов Java некоторые обязательные пакеты JDK могут быть недоступны на компьютерах агентов. Например, для проектов могут потребоваться другие или более ранние версии IBM, Oracle или пакетов JDK с открытым исходным кодом. Задача Установщик средства Java загружает и устанавливает пакет JDK, необходимый для проекта, во время сборки или выпуска. Переменная среды JAVA_HOME соответствующим образом устанавливается на время сборки или выпуска. Определенные пакеты JDK доступны для установщика средства Java через общую папку, репозиторий исходного кода или хранилище BLOB-объектов Azure.

Улучшенная конфигурация сборки Xcode

Задача Xcode была дополнена новым основным номером версии (4.*), который улучшает конфигурацию сборки, тестирования и упаковки Xcode. Если в вашем проекте Xcode есть одна общая схема, она будет использоваться автоматически. Была добавлена дополнительная встроенная справка. Нерекомендуемые функции, такие как упаковка xcrun, были удалены из свойств задачи Xcode. Существующие определения сборки и выпуска необходимо изменить, чтобы использовать последнюю версию 4.* задачи Xcode. Если вам требуются нерекомендуемые возможности предыдущей версии задачи Xcode, вы можете выбрать эту версию в определении.

Шлюзы выпуска

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

Для начала вы определяете шлюзы до или после развертывания в определении выпуска. Каждый шлюз может следить за одним или несколькими сигналами работоспособности, соответствующими системе мониторинга приложения. Встроенные шлюзы доступны для оповещений службы Azure Monitor (Application Insights) и рабочих элементов. Вы можете выполнить интеграцию с другими системами благодаря гибким возможностям функций Azure.

Выпуски с воротами

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

Интервал выборки

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

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

Выборочное развертывание на основе активации выпуска артефактом

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

Управление безопасностью, связанной с сущностью

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

Диалоговое окно

Утверждение нескольких сред

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

утверждение нескольких сред

Расширяемость шаблона выпуска

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

Задачи и этапы условного выпуска

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

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

Этапы условного выпуска

Журнал запросов для конечных точек службы

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

Журнал запросов конечной точки

Свойства по умолчанию для типов артефактов Git и GitHub теперь можно изменять

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

Редактируемые свойства артефакта

Массовое развертывание сред вручную из представления выпусков

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

Массовое развертывание

Использовать проекты из службы Jenkins теперь еще удобнее.

Во-первых, теперь вы можете использовать проекты с конвейерами с многократным ветвлением Jenkins в качестве источников артефактов в определении выпуска.

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

Уровень папки Jenkins

Центр Docker или реестр контейнеров Azure как источник артефакта

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

Теперь можно настроить центр Docker или ACR в качестве артефакта первого класса в разделе артефактов + Добавить в определении выпуска. Сейчас выпуск необходимо запускать вручную или с помощью другого артефакта, но вскоре мы планируем добавить триггер на основе принудительной отправки нового изображения в реестр.

Источник артефактов Dockerhub

Версии артефакта по умолчанию

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

Версии артефактов по умолчанию

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

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

Триггеры выпуска

Триггер выпуска для артефакта управления пакетом

Теперь можно установить триггер в артефакте Пакет управления в определении выпуска, чтобы новый выпуск создавался автоматически при публикации новой версии пакета. Дополнительные сведения см. в документации по триггерам в Release Management.

Область группы переменных в определенных средах

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

Группа переменных ссылок

Автоматический выпуск из реестра контейнеров Azure и центра Docker

При развертывании контейнерных приложений образ контейнера сначала помещается в реестр контейнеров. После завершения отправки образ контейнера можно развернуть в веб-приложении для контейнеров или на кластере Kubernetes. Теперь вы можете включить автоматическое создание выпусков при обновлении образов, хранящихся в центре Docker или реестре контейнеров Azure, добавив их в качестве источника артефакта.

Реестр контейнеров Azure в качестве источника

Версия по умолчанию для артефактов Jenkins

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

Теперь вы можете указать для артефактов Jenkins версию по умолчанию, задав уже знакомые вам параметры:

  • Последняя версия
  • Указать во время создания выпуска
  • Конкретная версия

Версия по умолчанию для артефактов Jenkins

Расширения для шлюзов выпуска

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

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

Масштабирование развертываний в виртуальных машинах с использованием групп развертывания

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

Функция развертывания на основе агентов использует уже доступные агенты сборки и развертывания. Вы можете использовать полный каталог задач на целевых компьютерах при создании групп развертывания. С точки зрения расширяемости вы также можете использовать интерфейсы REST API для групп развертывания и целевых объектов, чтобы обеспечить программный доступ.

Пакет

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

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

npmjs вышестоящий

Политики хранения в веб-каналах TFS

До сегодняшнего дня веб-каналы пакетов TFS не имели средств автоматической очистки более старых и неиспользуемых версий пакетов. При частой публикации пакетов это могло приводить к медленному выполнению запросов к веб-каналу в диспетчере пакетов NuGet и других клиентах, и приходилось удалять некоторые версии вручную.

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

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

Хранения

Фильтрация в управлении пакетами

Была обновлена страница Пакеты. Теперь она имеет стандартную разметку, панель ввода команд и новую панель фильтров.

Унифицированная панель фильтров пользовательского интерфейса пакета

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

В сообществе Open Source принято использовать индикатор событий, ссылающийся на последнюю версию пакета в файле сведений вашего репозитория. Теперь можно создавать индикаторы событий для пакетов в веб-каналах. Просто поставьте флажок Включить индикаторы событий пакетов в параметрах веб-канала, выберите пакет и нажмите Создать индикатор событий. Вы можете скопировать URL-адрес индикатора событий напрямую или скопировать предварительно созданную разметку Markdown, связывающую индикатор событий со страницей сведений о пакете.

Значок создания пакета

Список предыдущих версий пакета на всю страницу

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

Список версий

Просмотр качества версии пакета в списке пакетов

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

Представления в списке пакетов

Поддержка Gulp, Yarn и других веб-каналов с проверкой подлинности

Задача npm сейчас без проблем работает с веб-каналами npm с аутентификацией (в Управлении пакетами или внешних реестрах, таких как npm Enterprise и Artifactory). До этого момента было сложно использовать запускатель задач, например Gulp или другой клиент npm, такой как Yarn, если эта задача не поддерживала веб-каналы с аутентификацией. Мы добавили новую задачу сборки Проверка подлинности npm, которая добавляет учетные данные в файл с расширением .npmrc, чтобы последующие задачи могли успешно использовать веб-каналы с аутентификацией.

Веб-каналы проверки подлинности

Новое разрешение по умолчанию "Администраторы проекта" для веб-каналов пакетов

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

Повторный запуск и восстановление пакетов

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

Корзина пакета

Хотя вы и раньше могли отправлять другим URL-адреса пакета из центра Пакеты, использовать эту функцию часто было сложно, так как приходилось включать в URL-адрес проект, который мог быть не связан с получателями ссылки. Благодаря этому обновлению теперь можно отправлять пакеты, указывая URL-адрес с автоматическим выбором проекта, к которому у получателя есть доступ.

Формат URL-адреса: `https://<TFSserverURL>/_packaging?feed=<feed>&package=<package>&version=<version>&protocolType=<NuGet|Npm|Maven>&_a=package`

Все параметры, кроме <TFSserverURL>, необязательны, но если вы предоставляете пакет, необходимо указать тип протокола.

Тест

Задаче теста Visual Studio не нужна полная версия Visual Studio

Для задачи Тест Visual Studio в сборке или выпуске требуется Visual Studio на агенте для выполнения тестов. Вместо установки Visual Studio для выполнения тестов в рабочих средах или распространения тестов на несколько агентов используйте новую задачу Установщик платформы теста Visual Studio. Эта задача получает платформу тестирования из nuget.org и добавляет ее в кэш средств. Задача установщика удовлетворяет требованию vstest, и последующая задача Тест Visual Studio в определении может выполняться без установки полной версии Visual Studio на агенте.

В каталоге задач добавьте задачу установщика в определение.

Задача

Настройте последующую задачу Тест Visual Studio для использования данных, полученных с помощью установщика.

Версия тестовой платформы

Примечание

Ограничения Пакет платформы тестирования в NuGet в настоящее время не поддерживает выполнение закодированного теста пользовательского интерфейса. В ближайшее время мы планируем включить поддержку закодированного теста пользовательского интерфейса. Пакет платформы тестирования в NuGet работает на разных платформах, но задача VSTest в настоящее время не поддерживает выполнение тестов .NET Core. Для выполнения тестов .NET Core используйте задачу dotnet.

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

В прошлом году мы приступили к унификации агентов на стадии сборки, выпуска и тестирования. Таким образом мы хотели решить несколько проблем, связанных с использованием службы удаленного управления Windows на основе задач Развертывание агента тестирования и Запуск функциональных тестов. Также это позволяет вам использовать задачу Тест Visual Studio (VSTest) для любых типов тестирования, в том числе:

  • Модульные тесты
  • Функциональные тесты (связанные и не связанные с пользовательским интерфейсом)
  • Тесты на основе MSTest
  • Тесты на основе платформ сторонних производителей
  • Тесты на основе сборки или выполнение тестов с планом тестирования и набором тестов
  • Тесты на одном агенте, а также распределение тестов по нескольким агентам

Унифицированный подход к агентам также позволяет администраторам одинаково управлять всеми компьютерами, используемыми для непрерывной интеграции и непрерывного развертывания (CI/CD).

Задача

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

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

Фильтрация результатов теста большого объема

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

Фильтрация теста по имени теста

Кроме того, с помощью существующего фильтра Результат теперь можно отфильтровать несколько результатов. Разные критерии фильтра можно комбинировать. Если пользователю нужно просмотреть результаты тестирования для только что внесенного изменения, он может выполнить фильтрацию по критерию Контейнер (имя библиотеки DLL), Владелец (владелец DLL) или Имя теста либо по всем критериям, чтобы получить нужный результат.

Фильтрация результатов теста

Определение ненадежных тестов

Иногда тесты ненадежны — то они завершаются ошибкой, то выполняются успешно, хотя ничего не изменилось. Ненадежные тесты могут мешать работе и подрывать доверие к тестам, из-за чего разработчики игнорируют сбои, и в код закрадываются ошибки. В этом обновлении мы развернули первую часть решения проблемы ненадежных тестов. Теперь вы можете настроить задачу Тест Visual Studio так, чтобы она повторно выполняла неудавшиеся тесты. В результатах теста будет указано, какие тесты сначала завершились сбоем, а затем были успешно выполнены при повторном запуске. Поддержка повторного выполнения тестов на основе данных и упорядоченных тестов будет реализована позже.

В задаче Тест Visual Studio можно указать максимальное количество попыток повторного запуска неудачных тестов и пороговое значение процента неудачных выполнений (например, перезапускать тесты только в том случае, если менее 20 % всех тестов завершились сбоем), чтобы избежать повторного выполнения тестов в случае массового сбоя.

Раздел повторного запуска неудачного теста

На вкладке Тесты в разделе Сборка и выпуск вы можете отфильтровать результаты теста с итогом "Пройден при повторном запуске", чтобы определить ненадежные тесты. Сейчас там отображается последняя попытка для каждого теста, который был пройден при повторном запуске. В представлении "Сводка" теперь также отображается строка "Пройден при повторном запуске (n/m)", где n — это число тестов, пройденных при повторном запуске, а m — общее число пройденных тестов. Иерархическое представление всех попыток будет реализовано в следующих спринтах.

Повторный запуск неудачных результатов теста

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

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

Вики

Вы можете искать избранные вики-страницы по названию или содержимому прямо рядом с кодом и рабочими элементами. Дополнительные сведения о поиске на вики-сайте читайте в блоге Microsoft DevOps.

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

Параметр страницы печати в вики-меню

Примечание

В настоящее время эта функция не поддерживается в Firefox.

Редактируйте вики-страницы, используя сочетания клавиш

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

При просмотре страницы можно добавить, изменить или создать вложенную страницу, например:

Всплывающее окно сочетаний клавиш в вики-представления

При редактировании страницы вы можете быстро сохранить, сохранить и закрыть или просто закрыть окно.

Всплывающее окно сочетаний клавиш для редактирования вики-сайта

Они дополняют стандартные сочетания клавиш для редактирования, например Ctrl+B (полужирный), Ctrl+I (курсив), Ctrl+K (гиперссылка) и т. д. Дополнительные сведения см. в полном списке сочетаний клавиш.

Форматирование Markdown в репозитории кода

Теперь вы можете создавать форматированные файлы README.MD в репозиториях кода. Форматирование файлов MD в репозиториях кода теперь поддерживает теги HTML, блоки цитирования, эмодзи, изменение размера изображения и математические формулы. Отрисовка Markdown одинакова на вики-сайте и в файлах MD в коде.

Вики-сайт поддерживает математические формулы

Если ваше приложение имеет дело с математическими формулами и уравнениями, теперь их можно поместить на вики-сайт с помощью формата LaTeX.

Математика вики-сайта

Ссылки на рабочие элементы на вики-сайте

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

Ссылки на рабочие элементы на вики-сайте

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

Связывание рабочих элементов с вики-сайта

Связанные рабочие элементы будут отображаться на вики-странице.

Связанные рабочие элементы на вики-странице

Добавьте привязку к вики-странице из рабочего элемента с помощью нового типа ссылок "Вики-страница".

Ссылка на вики-сайт из рабочего элемента

Использование клавиш CTRL+S для сохранения вики-страницы

Вы говорили, что хотите сохранять вики-страницы быстрее и проще. Теперь можно просто использовать сочетание клавиш Ctrl+S, чтобы сохранить страницу с сообщением об исправлении по умолчанию и продолжить редактирование. Если вы хотите добавить особое сообщение об исправлении, просто нажмите на шеврон рядом с кнопкой сохранения.

Сохранение вики-сайта

Вставка форматированного содержимого вики-сайта в виде HTML

Теперь вы можете вставлять форматированный текст в редактор Markdown на вики-сайте из любых приложений, работающих в браузере, например Confluence, OneNote, SharePoint и MediaWiki. Это особенно удобно, если вы создали форматированное содержимое, например сложную таблицу, и хотите показать ее на вики-сайте. Просто скопируйте содержимое и вставьте его в формате HTML.

Форматированный контент вики-сайта в формате HTML

Перемещение страницы на вики-сайте с помощью клавиатуры

Раньше на вики-сайте пользователи не могли менять порядок страниц или изменять родительский объект с помощью клавиатуры. Это было неудобно для пользователей, предпочитающих работать на клавиатуре. Теперь вы можете изменить порядок страниц с помощью сочетания клавиш Ctrl + стрелка вверх или Ctrl + стрелка вниз. Вы также можете изменить родительскую страницу, нажав Переместить страницу в контекстном меню страницы и выбрав новую родительскую страницу.

Переместить вики-страницу

Диалоговое окно

Выделение отфильтрованного текста

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

Фильтрация выделения текста на вики-сайте

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

Фильтрация выделения текста в запросе на вытягивание

Предварительный просмотр содержимого при редактировании вики-страниц

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

Предварительный просмотр вики-сайта

Общее

Карточки профиля

В TFS существует ряд областей, в которых отображаются сведения об определенном пользователе, например созданные им запросы на вытягивание, назначенные ему рабочие элементы и другая информация. Однако сведений о самом пользователе представлено недостаточно. Новая карточка профиля заменяет существующую карточку профиля в TFS. Обновленная карточка профиля позволяет взаимодействовать с пользователем и получить дополнительные сведения о нем в вашей учетной записи TFS. Благодаря интеграции с почтовым клиентом и клиентом обмена мгновенными сообщениями по умолчанию пользователи Active Directory (AD) могут отправлять электронные письма и начинать чат прямо из карточки профиля. Пользователи AD также могут просматривать организационную иерархию в карточке профиля. Карточки профиля можно активировать на домашней странице проекта, в разделе членов команд, управления версиями, рабочих элементов и вики-сайта, нажав на значок карточки контакта, изображение профиля или имя пользователя в комментариях.

карточки профиля

Круглые аватары

Представляем круглые аватары! Все изображения профиля в службе теперь круглые, а не квадратные. Вот пример настоящего запроса на вытягивание для этого изменения (аватар круглый, а не квадратный).

Круг аватаров

Теги проекта

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

Теги проекта

Изменение порядка избранных групп

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

изменение порядка избранных групп


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

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


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