The main questions this presentation awsers:
How to replace all software development support tools - bug tracker, task trackers, boards, dashboards, source control, build machines with TFS and not broke anything.
How to extend TFS with typescript and have fun doing this
Visual Studio Team Services /TFS helps doing devops
1. Приручение слона в
посудной лавке
MS TFS 2015 в большой
организации
Константин Нерадовский, банк «Открытие»
kneradovsky@gmail.com
2. Федерация «Открытия»
Закон и порядок
• Создание правил
• Контроль выполнения
правил
• Следование правилам
• Достижение бизнес целей
• Выбор технических организационных инструментов
В командах есть:
• Task Tracker, Defects Tracker
• SCM
• Build Machine
Они тесно интегрированы
6. Обогнать время и влезть в окно
6
231
И моё!!!
В очередь !!!
Я тоже хочу !
7. Из одного окна - много
6
2 31
6
4
6
1 2
Агент 1
Агент 2
Агент 3
Ссылки на «оригинальные» сборки
доступны на Summary Page
Результаты сборок публикуются как тесты
13 часов тестов в шестичасовом окне
1
8. Не пропустить ни одного падения
• Автотесты «падают»
• «Падения» содержат диагностику (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": "<Прочее>"
}
}
}
9. Jenkins делится результатами
Требования к интеграции VSTS и Jenkins
• VSTS запускает сборку на Jenkins
• Артефакты сборки доступны в VSTS
• Результаты тестов доступны в VSTS
• Дополнительные отчеты Jenkins доступны в VSTS
10. Как это сделано?
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/
11. 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