Upload
konstantin-neradovsky
View
313
Download
3
Embed Size (px)
Citation preview
Приручение слона в
посудной лавке
MS TFS 2015 в большой организации
Константин Нерадовский, банк «Открытие»
Федерация «Открытия»
Закон и порядок
• Создание правил• Контроль выполнения
правил
• Следование правилам• Достижение бизнес целей• Выбор технических организационных инструментов
В командах есть:• Task Tracker, Defects Tracker• SCM• Build MachineОни тесно интегрированы
Приручен
Сборка Java, RubyПубликация результатов в TFS
Сборка C#, PHPSCM (TFS Git)Task TrackerBug TrackerRelease management
Из одного окна - много
6
2 31
6
4
6
1 2
Агент 1
Агент 2
Агент 3
Ссылки на «оригинальные» сборки доступны на Summary Page
Результаты сборок публикуются как тесты
13 часов тестов в шестичасовом окне
1
Не пропустить ни одного падения
• Автотесты «падают»• «Падения» содержат диагностику (stacktrace, screenshot …)• «Падения» необходимо фиксировать и разбирать – вручную создавать
дефекты на каждое падение
• Автоматически создается дефект:• Name – название автотеста• Description – диагностика из падения• Assignee – ответственный за этот
запуск автотестов
{“TestBuild1": {
"user":“username1","mandatoryFields" : {
“Vendor.System": System1"}
}, “TestBuild2": {
"user":“username2","mandatoryFields" : {
“Vendor.System": “System2"}
}, "default": {
"user":“username2","mandatoryFields" : {
“Vendor.System": "<Прочее>"}
}}
Jenkins делится результатами
Требования к интеграции VSTS и Jenkins• VSTS запускает сборку на Jenkins• Артефакты сборки доступны в VSTS• Результаты тестов доступны в VSTS• Дополнительные отчеты Jenkins доступны в VSTS
Как это сделано?
VSTS Tasks Bootstrap https://github.com/kneradovsky/viko-vsts-extension
• Быстрое создание задачи
• Упаковка задачи в расширение vsix для распространения
• Примеры задач – AutoDefects, Builds Starter, Builds Awaiter
• IntelliSense and static checks
• ECMA Script 2015 транслируется в ECMA Script 3
• Пакеты для работы с API VSTS (vso-node-api) и окружением задачи (vsts-task-lib)
• Доступны любые npm пакеты
• Работает на Linux агентах
TypeScript - typed superset of the JavaScript https://www.typescriptlang.org/
Bootstrap
создать, собрать, упаковать
• gulp – сборка всех задач из проектного списка сборки
• Трансляция .ts в .js
• Установка node_modules в каталог задачи
• Генерация языковых файлов
Опубликовать
Запаковать
Собрать
Создать
gulp mkext <TaskName1,TaskName2>
• Упаковка всех задач из проектного списка как отдельных расширений .vsix
• Если указан параметр – упаковка только перечисленных задач.
tfx-cli publish
gulp generate --name TaskName
• Задача добавляется в проектный список задач для сборки
• Создание каталога задачи и «скелетных» файлов –taskname.ts, task.json, package.json, typings.json, icon.png