Задание 1. Использование средств командной работы платформы GitHub

  1. Созданы шаблоны для Issues для создания новой задачи и новой ошибки: 2 балла (по одному баллу за создания каждого шаблона).
  2. При создании Issues с использованием подготовленных шаблонов добавляются метки “Feautre” и “Bug” для задач и ошибок соответственно: 1 балл.
  3. Созданы две задачи и одна ошибка с использованием подготовленных шаблонов Issues: 1 балл.
  4. Все Issues связаны с Milestone со сроком выполнения в пределах двух недель с момента создания Issues: 1 балл.
  5. В репозитории создана канбан-доска, на которой все задачи могут находиться в одном из четырех состояний: “Новые”, “Активные”, “В работе”, “Выполнены”: 1 балл.
  6. На момент проверки задания одна задача имеет статус “Новая” (та, для которой не создавался пулл реквест), а другая задача и ошибка - “Выполнены” на доске: 1 балл.
  7. Созданы два пулл реквеста - пулл реквест для задачи создан с ветки внутри рпозитория, пулл-реквест для ошибки создан из “форкнутого” репозитория. Пулл реквесты созданы из-под разных пользователей, отличных от пользователя аккаунта, на котором опубликован репозиторий. Пулл реквест для задачи закрыт, пулл реквест для ошибки - открыт: 2 балла.
  8. В репозитории имеется ветка develop. С этой ветки созданы ветки для решения задачи и исправления ошибки. Имя ветки для решения задачи имеет префикс “feature-“, имя ветки для исправления ошибки - префикс “fix-“: 1 балл.
  9. Пулл реквесты ссылаются на соответствующие Issues. Закрытая Issue ссылается на пулл реквест или коммит, который ее закрыл: 1 балл.
  10. Для репозитория настроен серверный билд с использованием Travis CI. В серверном билде запускаются тесты для коллекций, созданных при выполнении задания из предыдущего модуля, при помощи инструмента Newman: 3 балла.
  11. Билды, которые запущены с веток master и develop, инициируют автоматическое развертывание клиентского приложения на GitHub Pages, связанных с данным репозиторием (код клиентского прилжения попадает в папку с именем исходной ветки, т.е. “master” или “develop”, внутри ветки gh-pages): 2 балла.
  12. В репозитории имеются файлы README.md и CONTRIBUTING.md. В файле README.md присутствуют описание клиентского приложения, а также ссылки на развернутые версии приложения с веток master и develop на GitHub Pages. В файле CONTRIBUTING.md присутствует описание правил добавления исходного кода в репозиторий. Язык содержимого файлов может быть как русский, так и английский: 2 балла (по одному баллу за наличие каждого файла).

Итого за задание: 18 баллов.

Задание 2. Использование Azure DevOps (TFS)

  1. Создана новая организация и проект. В проекте в качестве процесса для рабочих элементов выбран Agile. Добавлены приватные Git-репозиторий и TFVC-репозиторий в Azure Repos: 1 балл.
  2. В баклоге Azure Boards созданы три требования с именами Создание npm-пакета chance-js, Установка пакета chance-js в приложение и Настройка CI/CD для приложения: 1 балл.
  3. Для требования Создание npm-пакета chance-js добавлены задачи со следующими названиями: Добавление исходных файлов в репозиторий и Создание билда для публикации пакета. Задачам добавлено произвольное описание. Задачи назначены на одного и того же пользователя: 2 балла (по одному баллу на задачу).
  4. Для требования Установка пакета chance-js в приложение добавлена задача со следующим названием: Добавление зависимости от пакета chance-js. Задаче добавлено произвольное описание. Задача назначена на пользователя, отличного от пользователя, на которого назначены задачи из требования Создание npm-пакета chance-js: 1 балл.
  5. Для требования Настройка CI/CD для приложения добавлены задачи со следующими названиями: Добавление билда приложения и Публикация приложения на GitHub Pages. Задачам добавлено произвольное описание. Задачи назначены на разных пользователей: 2 балла (по одному баллу на задачу).
  6. Все созданные задачи запланированы на итерацию. Итерация должна иметь двухнедельный срок. Все задачи на момент сдачи данного задания должны находиться в состоянии Resolved (при условии, что задание выполнено полностью). Если какая-то часть данного задания не выполнена, соответствующие задачи могут иметь статусы New или Active: 1 балл.
  7. В TFVC-репозитории проекта в Azure Repos добавлены файлы из GitHub-репозитория библиотеки Chance. Команды gulp lint, gulp test и gulp build выполняются без ошибок на локальной машине (если выполнить маппинг данного репозитория в локальную папку). Добавление файлов произведено одним или несколькими чекинами. Каждый чекин связан с задачей Добавление исходных файлов в репозиторий требования Создание npm-пакета chance-js. Комментарии к чекинам имеют следующий формат: <дата>. <Название задачи>. <Комментарий>.. Чекины сделаны пользователем, на которого назначена задача: 3 балла.
  8. В Git-репозиторий проекта в Azure Repos добавлены файлы из GitHub-репозитория Issue Tracker Demo: 1 балл.
  9. Создана “лента” в Azure Artifacts. Команда npm install устанавливает в приложение npm-пакеты как из ленты, так и из публичного репозитория npm-пакетов (в настройках “ленты” указан Upstream-источник для доступа к npm-пакетам из репозитория https://registry.npmjs.org/ через данную “ленту”). В “ленте” опубликован npm-пакет chance-js: 2 балла.
  10. Создан билд, который публикует npm-пакет chance-js из TFVC-репозитория в Azure Repos, в “ленту” Azure Artifacts. В процессе выполнения билда перед публикацией npm-пакета выполняются gulp-задачи lint, test и build. Continuous Integration для данного билда выключен, то есть билд не должен запускаться при каждом чекине в репозиторий. Билд является рабочим - если изменить версию npm-пакета и запустить билд, то новая версия npm-пакета будет опубликована в “ленту” Azure Artifacts: 3 балла.
  11. В приложение из Git-репозитория в Azure Repos добавлена зависимость от npm-пакета chance-js, который опубликован в “ленте” Azure Artifacts проекта. Все изменения произведены в отдельной ветке и слиты в рабочую ветку при помощи пулл реквеста. Создание втеки, все коммиты и пулл реквест привязаны к задаче Добавление зависимости от пакета chance-js требования Установка пакета chance-js в приложение. Пулл реквест перед принятием подтвержден ревьювером, ревьювером должен являться пользователь, отличный от исполнителя задачи. Файл chance.js из папки src удален. В приложение должен быть установлен пакет chance-js из “ленты” Azure Artifacts проекта. При локальном запуске приложения Issues создаваться не должны, так как файл chance.js будет отсутствовать (поскольку мы пока не используем “сборщик” для приложения): 3 балла.
  12. Создан билд, который собирает приложение из 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 балла.
  13. Создан релиз в Azure Pipelines, который публикует артифакты (“результаты”) билда приложения из закрытого Git-репозитория Azure Repos на GitHub Pages. В качестве артифакта для релиза выбран билд приложения из Git-репозитория проекта в Azure Repos. Создана одна стадия, в которой осуществляется публикация артифактов (“результатов”) билда на GitHub Pages. Стадия запускается автоматически. Публикация осуществляется при помощи bash-скрипта, аналогичного тому, который был создан при выполнении Задания 1 данного модуля. Публикация осуществляется в любой личный репозиторий на GitHub в папку azure ветки gh-pages. Релиз является рабочим - релиз запускается при успешном окончании выполнения билда приложения, а также разворачивает приложение со всеми изменениями на GitHub Pages: 3 балла.

Итого за задание: 26 баллов.

Вы можете