diff --git a/readme.md b/readme.md index 16f14fb..3864695 100644 --- a/readme.md +++ b/readme.md @@ -42,3 +42,4 @@ * [8.4. Работа с Roles](/src/homework/08-ansible/8.4) * [8.5. Тестирование Roles](/src/homework/08-ansible/8.5) * [8.6. Создание собственных modules](/src/homework/08-ansible/8.6) +* [9.1. Жизненный цикл ПО](/src/homework/09-ci/9.1) diff --git a/src/homework/09-ci/9.1/img/jira-all-boards.png b/src/homework/09-ci/9.1/img/jira-all-boards.png new file mode 100644 index 0000000..59b620f Binary files /dev/null and b/src/homework/09-ci/9.1/img/jira-all-boards.png differ diff --git a/src/homework/09-ci/9.1/img/jira-bug-workflow.png b/src/homework/09-ci/9.1/img/jira-bug-workflow.png new file mode 100644 index 0000000..c62a7a6 Binary files /dev/null and b/src/homework/09-ci/9.1/img/jira-bug-workflow.png differ diff --git a/src/homework/09-ci/9.1/img/jira-closed-sprint.png b/src/homework/09-ci/9.1/img/jira-closed-sprint.png new file mode 100644 index 0000000..7f003b4 Binary files /dev/null and b/src/homework/09-ci/9.1/img/jira-closed-sprint.png differ diff --git a/src/homework/09-ci/9.1/img/jira-kanban.png b/src/homework/09-ci/9.1/img/jira-kanban.png new file mode 100644 index 0000000..93c01e8 Binary files /dev/null and b/src/homework/09-ci/9.1/img/jira-kanban.png differ diff --git a/src/homework/09-ci/9.1/img/jira-task-workflow.png b/src/homework/09-ci/9.1/img/jira-task-workflow.png new file mode 100644 index 0000000..aa51bf0 Binary files /dev/null and b/src/homework/09-ci/9.1/img/jira-task-workflow.png differ diff --git a/src/homework/09-ci/9.1/readme.md b/src/homework/09-ci/9.1/readme.md new file mode 100644 index 0000000..da91ebf --- /dev/null +++ b/src/homework/09-ci/9.1/readme.md @@ -0,0 +1,59 @@ +Выполнение [домашнего задания](https://github.com/netology-code/mnt-homeworks/blob/MNT-13/09-ci-01-intro/README.md) +по теме "9.1. Жизненный цикл ПО". + +## Q/A + +### Задание 1 + +> Подготовка к выполнению +> 1. Получить бесплатную JIRA +> 2. Настроить её для своей "команды разработки" +> 3. Создать доски kanban и scrum + +По умолчанию проект создаётся с kanban-доской. + +![jira-kanban](./img/jira-kanban.png) + +Поэтому достаточно создать дополнительную доску для scrum. + +![jira-all-boards](./img/jira-all-boards.png) + +### Задание 2 + +> Основная часть +> +> В рамках основной части необходимо создать собственные workflow для двух типов задач: bug и остальные типы задач. +> Задачи типа bug должны проходить следующий жизненный цикл: +> 1. Open -> On reproduce +> 2. On reproduce -> Open, Done reproduce +> 3. Done reproduce -> On fix +> 4. On fix -> On reproduce, Done fix +> 5. Done fix -> On test +> 6. On test -> On fix, Done +> 7. Done -> Closed, Open +> +> Остальные задачи должны проходить по упрощённому workflow: +> 1. Open -> On develop +> 2. On develop -> Open, Done develop +> 3. Done develop -> On test +> 4. On test -> On develop, Done +> 5. Done -> Closed, Open +> +> Создать задачу с типом bug, попытаться провести его по всему workflow до Done. +> Создать задачу с типом epic, к ней привязать несколько задач с типом task, провести их по всему workflow до Done. +> При проведении обеих задач по статусам использовать kanban. Вернуть задачи в статус Open. +> Перейти в scrum, запланировать новый спринт, состоящий из задач эпика и одного бага, стартовать спринт, провести задачи до состояния Closed. Закрыть спринт. +> +> Если всё отработало в рамках ожидания - выгрузить схемы workflow для импорта в XML. Файлы с workflow приложить к решению задания. + +Workflow для задач типа bug описан в [bug.xml](./workflows/bug.xml). + +![jira-bug-workflow](./img/jira-bug-workflow.png) + +Для всех остальных типов workflow описан в [common.xml](./workflows/common.xml). + +![jira-task-workflow](./img/jira-task-workflow.png) + +Информация о закрытом спринте: + +![jira-closed-sprint](./img/jira-closed-sprint.png) diff --git a/src/homework/09-ci/9.1/workflows/bug.xml b/src/homework/09-ci/9.1/workflows/bug.xml new file mode 100644 index 0000000..ca2057e --- /dev/null +++ b/src/homework/09-ci/9.1/workflows/bug.xml @@ -0,0 +1,360 @@ + + + + + 62fda3e5eec8d4a478d4add4 + 62fda3e5eec8d4a478d4add4 + 1660791313915 + + + + + com.atlassian.jira.workflow.validator.PermissionValidator + Create Issue + + + + + + + com.atlassian.jira.workflow.function.issue.IssueCreateFunction + + + com.atlassian.jira.workflow.function.issue.IssueReindexFunction + + + com.atlassian.jira.workflow.function.event.FireIssueEventFunction + 1 + + + + + + + + + 1 + + + + + + + + + com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction + + + com.atlassian.jira.workflow.function.misc.CreateCommentFunction + + + com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction + + + com.atlassian.jira.workflow.function.issue.IssueReindexFunction + + + com.atlassian.jira.workflow.function.event.FireIssueEventFunction + 13 + + + + + + + + + 10003 + + + + + + + + + com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction + + + com.atlassian.jira.workflow.function.misc.CreateCommentFunction + + + com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction + + + com.atlassian.jira.workflow.function.issue.IssueReindexFunction + + + com.atlassian.jira.workflow.function.event.FireIssueEventFunction + 13 + + + + + + + + + + + + + com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction + + + com.atlassian.jira.workflow.function.misc.CreateCommentFunction + + + com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction + + + com.atlassian.jira.workflow.function.issue.IssueReindexFunction + + + com.atlassian.jira.workflow.function.event.FireIssueEventFunction + 13 + + + + + + + + + 10004 + + + + + + + + + com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction + + + com.atlassian.jira.workflow.function.misc.CreateCommentFunction + + + com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction + + + com.atlassian.jira.workflow.function.issue.IssueReindexFunction + + + com.atlassian.jira.workflow.function.event.FireIssueEventFunction + 13 + + + + + + + + + 10005 + + + + + + + + + com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction + + + com.atlassian.jira.workflow.function.misc.CreateCommentFunction + + + com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction + + + com.atlassian.jira.workflow.function.issue.IssueReindexFunction + + + com.atlassian.jira.workflow.function.event.FireIssueEventFunction + 13 + + + + + + + + + + + + + com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction + + + com.atlassian.jira.workflow.function.misc.CreateCommentFunction + + + com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction + + + com.atlassian.jira.workflow.function.issue.IssueReindexFunction + + + com.atlassian.jira.workflow.function.event.FireIssueEventFunction + 13 + + + + + + + + + 10006 + + + + + + + + + com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction + + + com.atlassian.jira.workflow.function.misc.CreateCommentFunction + + + com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction + + + com.atlassian.jira.workflow.function.issue.IssueReindexFunction + + + com.atlassian.jira.workflow.function.event.FireIssueEventFunction + 13 + + + + + + + + + 10007 + + + + + + + + + com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction + + + com.atlassian.jira.workflow.function.misc.CreateCommentFunction + + + com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction + + + com.atlassian.jira.workflow.function.issue.IssueReindexFunction + + + com.atlassian.jira.workflow.function.event.FireIssueEventFunction + 13 + + + + + + + + + + + + + com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction + + + com.atlassian.jira.workflow.function.misc.CreateCommentFunction + + + com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction + + + com.atlassian.jira.workflow.function.issue.IssueReindexFunction + + + com.atlassian.jira.workflow.function.event.FireIssueEventFunction + 13 + + + + + + + + + 10002 + + + + + + + + + com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction + + + com.atlassian.jira.workflow.function.misc.CreateCommentFunction + + + com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction + + + com.atlassian.jira.workflow.function.issue.IssueReindexFunction + + + com.atlassian.jira.workflow.function.event.FireIssueEventFunction + 13 + + + + + + + + + + + + + com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction + + + com.atlassian.jira.workflow.function.misc.CreateCommentFunction + + + com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction + + + com.atlassian.jira.workflow.function.issue.IssueReindexFunction + + + com.atlassian.jira.workflow.function.event.FireIssueEventFunction + 13 + + + + + + + + + 6 + + + diff --git a/src/homework/09-ci/9.1/workflows/common.xml b/src/homework/09-ci/9.1/workflows/common.xml new file mode 100644 index 0000000..c2ecd94 --- /dev/null +++ b/src/homework/09-ci/9.1/workflows/common.xml @@ -0,0 +1,246 @@ + + + + + 62fda3e5eec8d4a478d4add4 + 62fda3e5eec8d4a478d4add4 + 1660791806013 + + + + + com.atlassian.jira.workflow.validator.PermissionValidator + Create Issue + + + + + + + com.atlassian.jira.workflow.function.issue.IssueCreateFunction + + + com.atlassian.jira.workflow.function.issue.IssueReindexFunction + + + com.atlassian.jira.workflow.function.event.FireIssueEventFunction + 1 + + + + + + + + + 1 + + + + + + + + + com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction + + + com.atlassian.jira.workflow.function.misc.CreateCommentFunction + + + com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction + + + com.atlassian.jira.workflow.function.issue.IssueReindexFunction + + + com.atlassian.jira.workflow.function.event.FireIssueEventFunction + 13 + + + + + + + + + 10008 + + + + + + + + + com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction + + + com.atlassian.jira.workflow.function.misc.CreateCommentFunction + + + com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction + + + com.atlassian.jira.workflow.function.issue.IssueReindexFunction + + + com.atlassian.jira.workflow.function.event.FireIssueEventFunction + 13 + + + + + + + + + + + + + com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction + + + com.atlassian.jira.workflow.function.misc.CreateCommentFunction + + + com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction + + + com.atlassian.jira.workflow.function.issue.IssueReindexFunction + + + com.atlassian.jira.workflow.function.event.FireIssueEventFunction + 13 + + + + + + + + + 10009 + + + + + + + + + com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction + + + com.atlassian.jira.workflow.function.misc.CreateCommentFunction + + + com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction + + + com.atlassian.jira.workflow.function.issue.IssueReindexFunction + + + com.atlassian.jira.workflow.function.event.FireIssueEventFunction + 13 + + + + + + + + + 10007 + + + + + + + + + com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction + + + com.atlassian.jira.workflow.function.misc.CreateCommentFunction + + + com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction + + + com.atlassian.jira.workflow.function.issue.IssueReindexFunction + + + com.atlassian.jira.workflow.function.event.FireIssueEventFunction + 13 + + + + + + + + + + + + + com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction + + + com.atlassian.jira.workflow.function.misc.CreateCommentFunction + + + com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction + + + com.atlassian.jira.workflow.function.issue.IssueReindexFunction + + + com.atlassian.jira.workflow.function.event.FireIssueEventFunction + 13 + + + + + + + + + 10002 + + + + + + + + + com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction + + + com.atlassian.jira.workflow.function.misc.CreateCommentFunction + + + com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction + + + com.atlassian.jira.workflow.function.issue.IssueReindexFunction + + + com.atlassian.jira.workflow.function.event.FireIssueEventFunction + 13 + + + + + + + + + 6 + + +