Задание 1. Использование средств командной работы платформы GitHub
- Созданы шаблоны для Issues для создания новой задачи и новой ошибки: 2 балла (по одному баллу за создания каждого шаблона).
- При создании Issues с использованием подготовленных шаблонов добавляются метки “Feautre” и “Bug” для задач и ошибок соответственно: 1 балл.
- Созданы две задачи и одна ошибка с использованием подготовленных шаблонов Issues: 1 балл.
- Все Issues связаны с Milestone со сроком выполнения в пределах двух недель с момента создания Issues: 1 балл.
- В репозитории создана канбан-доска, на которой все задачи могут находиться в одном из четырех состояний: “Новые”, “Активные”, “В работе”, “Выполнены”: 1 балл.
- На момент проверки задания одна задача имеет статус “Новая” (та, для которой не создавался пулл реквест), а другая задача и ошибка - “Выполнены” на доске: 1 балл.
- Созданы два пулл реквеста - пулл реквест для задачи создан с ветки внутри рпозитория, пулл-реквест для ошибки создан из “форкнутого” репозитория. Пулл реквесты созданы из-под разных пользователей, отличных от пользователя аккаунта, на котором опубликован репозиторий. Пулл реквест для задачи закрыт, пулл реквест для ошибки - открыт: 2 балла.
- В репозитории имеется ветка develop. С этой ветки созданы ветки для решения задачи и исправления ошибки. Имя ветки для решения задачи имеет префикс “feature-“, имя ветки для исправления ошибки - префикс “fix-“: 1 балл.
- Пулл реквесты ссылаются на соответствующие Issues. Закрытая Issue ссылается на пулл реквест или коммит, который ее закрыл: 1 балл.
- Для репозитория настроен серверный билд с использованием Travis CI. В серверном билде запускаются тесты для коллекций, созданных при выполнении задания из предыдущего модуля, при помощи инструмента Newman: 3 балла.
- Билды, которые запущены с веток master и develop, инициируют автоматическое развертывание клиентского приложения на GitHub Pages, связанных с данным репозиторием (код клиентского прилжения попадает в папку с именем исходной ветки, т.е. “master” или “develop”, внутри ветки gh-pages): 2 балла.
- В репозитории имеются файлы README.md и CONTRIBUTING.md. В файле README.md присутствуют описание клиентского приложения, а также ссылки на развернутые версии приложения с веток master и develop на GitHub Pages. В файле CONTRIBUTING.md присутствует описание правил добавления исходного кода в репозиторий. Язык содержимого файлов может быть как русский, так и английский: 2 балла (по одному баллу за наличие каждого файла).
Итого за задание: 18 баллов.
Задание 2. Использование Azure DevOps (TFS)
- Создана новая организация и проект. В проекте в качестве процесса для рабочих элементов выбран Agile. Добавлены приватные Git-репозиторий и TFVC-репозиторий в Azure Repos: 1 балл.
- В баклоге Azure Boards созданы три требования с именами
Создание npm-пакета chance-js
,Установка пакета chance-js в приложение
иНастройка CI/CD для приложения
: 1 балл. - Для требования
Создание npm-пакета chance-js
добавлены задачи со следующими названиями:Добавление исходных файлов в репозиторий
иСоздание билда для публикации пакета
. Задачам добавлено произвольное описание. Задачи назначены на одного и того же пользователя: 2 балла (по одному баллу на задачу). - Для требования
Установка пакета chance-js в приложение
добавлена задача со следующим названием:Добавление зависимости от пакета chance-js
. Задаче добавлено произвольное описание. Задача назначена на пользователя, отличного от пользователя, на которого назначены задачи из требованияСоздание npm-пакета chance-js
: 1 балл. - Для требования
Настройка CI/CD для приложения
добавлены задачи со следующими названиями:Добавление билда приложения
иПубликация приложения на GitHub Pages
. Задачам добавлено произвольное описание. Задачи назначены на разных пользователей: 2 балла (по одному баллу на задачу). - Все созданные задачи запланированы на итерацию. Итерация должна иметь двухнедельный срок. Все задачи на момент сдачи данного задания должны находиться в состоянии
Resolved
(при условии, что задание выполнено полностью). Если какая-то часть данного задания не выполнена, соответствующие задачи могут иметь статусыNew
илиActive
: 1 балл. - В TFVC-репозитории проекта в Azure Repos добавлены файлы из GitHub-репозитория библиотеки Chance. Команды
gulp lint
,gulp test
иgulp build
выполняются без ошибок на локальной машине (если выполнить маппинг данного репозитория в локальную папку). Добавление файлов произведено одним или несколькими чекинами. Каждый чекин связан с задачейДобавление исходных файлов в репозиторий
требованияСоздание npm-пакета chance-js
. Комментарии к чекинам имеют следующий формат:<дата>. <Название задачи>. <Комментарий>.
. Чекины сделаны пользователем, на которого назначена задача: 3 балла. - В Git-репозиторий проекта в Azure Repos добавлены файлы из GitHub-репозитория Issue Tracker Demo: 1 балл.
- Создана “лента” в Azure Artifacts. Команда
npm install
устанавливает в приложение npm-пакеты как из ленты, так и из публичного репозитория npm-пакетов (в настройках “ленты” указан Upstream-источник для доступа к npm-пакетам из репозитория https://registry.npmjs.org/ через данную “ленту”). В “ленте” опубликован npm-пакетchance-js
: 2 балла. - Создан билд, который публикует npm-пакет
chance-js
из TFVC-репозитория в Azure Repos, в “ленту” Azure Artifacts. В процессе выполнения билда перед публикацией npm-пакета выполняются gulp-задачиlint
,test
иbuild
. Continuous Integration для данного билда выключен, то есть билд не должен запускаться при каждом чекине в репозиторий. Билд является рабочим - если изменить версию npm-пакета и запустить билд, то новая версия npm-пакета будет опубликована в “ленту” Azure Artifacts: 3 балла. - В приложение из Git-репозитория в Azure Repos добавлена зависимость от npm-пакета
chance-js
, который опубликован в “ленте” Azure Artifacts проекта. Все изменения произведены в отдельной ветке и слиты в рабочую ветку при помощи пулл реквеста. Создание втеки, все коммиты и пулл реквест привязаны к задачеДобавление зависимости от пакета chance-js
требованияУстановка пакета chance-js в приложение
. Пулл реквест перед принятием подтвержден ревьювером, ревьювером должен являться пользователь, отличный от исполнителя задачи. Файлchance.js
из папкиsrc
удален. В приложение должен быть установлен пакетchance-js
из “ленты” Azure Artifacts проекта. При локальном запуске приложения Issues создаваться не должны, так как файлchance.js
будет отсутствовать (поскольку мы пока не используем “сборщик” для приложения): 3 балла. - Создан билд, который собирает приложение из Git-репозитория в Azure Repos. В процессе выполнения билда выполняется команда
npm run lint
для запуска линтинга. В билде в “результирующую” папку (drop folder), копируются файлыindex.html
иmain.js
из папкиsrc
, а также файлchance.min.js
из папкиnode_modules/chance-js/dist/
. При этом скопированный файлchance.min.js
в процессе работы билда переименован вchance.js
. Continuous Integration для данного билда включен, то есть билд запускается при любом чекине в любую ветку данного репозитория: 3 балла. - Создан релиз в Azure Pipelines, который публикует артифакты (“результаты”) билда приложения из закрытого Git-репозитория Azure Repos на GitHub Pages. В качестве артифакта для релиза выбран билд приложения из Git-репозитория проекта в Azure Repos. Создана одна стадия, в которой осуществляется публикация артифактов (“результатов”) билда на GitHub Pages. Стадия запускается автоматически. Публикация осуществляется при помощи bash-скрипта, аналогичного тому, который был создан при выполнении Задания 1 данного модуля. Публикация осуществляется в любой личный репозиторий на GitHub в папку
azure
веткиgh-pages
. Релиз является рабочим - релиз запускается при успешном окончании выполнения билда приложения, а также разворачивает приложение со всеми изменениями на GitHub Pages: 3 балла.
Итого за задание: 26 баллов.