# Инструкция по подключению приёмочных и сборочных сценариев Управление нашей фирмой 3.0 в Системе проектирования прикладных решений


Приёмочные и сборочные сценарии поставляются в составе полного дистрибутива конфигурации Управление нашей фирмой (УНФ), редакция 3.0
После распаковывания дистрибутива, файлы приёмочных и сборочных сценариев доступны в каталоге шаблонов, в зависимости от используемой операционной системы:
* Windows: `%APPDATA%/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/QA`
* Linux: `~/.1cv8/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/QA`
* macOS: `~/.1cv8/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/QA`

Приёмочные и сборочные сценарии разработаны в Системе проектирования прикладных решений (СППР)

При разработке данной инструкции использовалось следующее программное обеспечение:
* Java Zulu 25.30.17 https://www.azul.com/downloads
* Jenkins (еженедельная сборка) https://www.jenkins.io/
* Visual Studio Code 1.97.0 https://code.visualstudio.com
* 1C: Enterprise Development Tools [ВерсияEDT] https://releases.1c.ru/project/DevelopmentTools10
* git version 2.47.1.2 windows x64 установлен с помощью `choco install git -y -params '"/GitAndUnixToolsOnPath"'` https://community.chocolatey.org/packages/git.install
* GitLab Community Edition 15.5.3 https://about.gitlab.com/install/
* Vanessa Automation 1.2.042.37 https://github.com/Pr-Mex/vanessa-automation
* Vanessa Automation (расширение) 1.17 https://github.com/Pr-Mex/vanessa-automation
* Платформа 1С:Предприятие [Платформа] https://releases.1c.ru/project/Platform83
* Система проектирования прикладных решений (СППР) 2.0.14.9 https://releases.1c.ru/project/Modeling
* 1С:Предприятие.Элемент Скрипт [ВерсияИсполнителя] u https://releases.1c.ru/project/Script
* Управление нашей фирмой (УНФ) [Версия] https://releases.1c.ru/project/SmallBusiness30

## Оглавление
   - ### Подключение приемочных сценариев
      - [1. Развернуть СППР](#1-развернуть-сппр)
      - [2. Развернуть GitLab](#2-развернуть-gitlab)
      - [3. Создать проект со сценариями в git](#3-создать-проект-со-сценариями-в-git)
      - [4. Загрузить проект в GitLab](#4-загрузить-проект-в-gitlab)
      - [5. Подключить проект к СППР](#5-подключить-проект-к-сппр)
      - [6. Загрузить в СППР вспомогательные данные](#6-загрузить-в-сппр-вспомогательные-данные)
      - [7. Персональные настройки тестирования в СППР](#7-персональные-настройки-тестирования-в-сппр)
      - [8. Запустить сценарий из СППР](#8-запустить-сценарий-из-сппр)
   - ### Подключение сборочных сценариев  
      - [9. Установить Java](#9-установить-java)
      - [10. Установить Jenkins](#10-установить-jenkins)
      - [11. Установить плагины Jenkins](#11-установить-плагины-jenkins)
      - [12. Добавить настройки запуска службы Jenkins](#12-добавить-настройки-запуска-службы-jenkins)
      - [13. Настроить агента Jenkins](#13-настроить-агента-jenkins)
      - [14. Установить Visual Studio Code](#14-установить-visual-studio-code)
      - [15. Настройка групповой разработки](#15-настройка-групповой-разработки)
      - [16. Установить 1С: Управление нашей фирмой (УНФ)](#16-установить-1с-управление-нашей-фирмой-унф)
      - [17. Установить платформу 1С](#17-установить-платформу-1с)
      - [18. Настроить платформу 1С:Предприятие](#18-настроить-платформу-1спредприятие)
      - [19. Установить 1С:Предприятие.Элемент Скрипт](#19-установить-1спредприятиеэлемент-скрипт)
      - [20. Установить 1C: Enterprise Development Tools](#20-установить-1c-enterprise-development-tools)
      - [21. Enterprise Development Tools: Создание проекта конфигурации](#21-enterprise-development-tools-создание-проекта-конфигурации)
      - [22. Enterprise Development Tools: Добавление информационной базы](#22-enterprise-development-tools-добавление-информационной-базы)
      - [23. Enterprise Development Tools: Добавление репозитория git](#23-enterprise-development-tools-добавление-репозитория-git)
      - [24. Enterprise Development Tools: Подключение репозитория git к проекту 1С](#24-enterprise-development-tools-подключение-репозитория-git-к-проекту-1с)
      - [25. Добавить, зафиксировать и отправить в репозиторий файлы, сформированные на предыдущих шагах](#25-добавить-зафиксировать-и-отправить-в-репозиторий-файлы-сформированные-на-предыдущих-шагах)
      - [26. Enterprise Development Tools: Добавить вспомогательные расширения](#26-enterprise-development-tools-добавить-вспомогательные-расширения)
      - [27. Enterprise Development Tools: Добавить вспомогательные обработки и отчеты](#27-enterprise-development-tools-добавить-вспомогательные-обработки-и-отчеты)
      - [28. Скачать Vanessa Automation"](#28-скачать-vanessa-automation)
      - [29. Скачать расширение Vanessa Automation"](#29-скачать-расширение-vanessa-automation)
      - [30. Добавить репозиторий с библиотекой SBM Jenkins Library"](#30-добавить-репозиторий-с-библиотекой-sbm-jenkins-library)
      - [31. Указать глобальный репозиторий с библиотекой SBM Jenkins Library](#31-указать-глобальный-репозиторий-с-библиотекой-sbm-jenkins-library)
      - [32. Создать каталог для исходных файлов шаблонов дистрибутивов](#32-создать-каталог-для-исходных-файлов-шаблонов-дистрибутивов)
      - [33. Создать каталог для дистрибутивов](#33-создать-каталог-для-дистрибутивов)
      - [34. Добавить токен доступа к GitLab](#34-добавить-токен-доступа-к-gitlab)
      - [35. Добавить секрет для указания файла с токеном доступа к GitLab](#35-добавить-секрет-для-указания-файла-с-токеном-доступа-к-gitlab)
      - [36. Создать каталог для эталонных баз тестирования](#36-создать-каталог-для-эталонных-баз-тестирования)
      - [37. Добавление новых эталонных баз данных в репозиторий](#37-добавление-новых-эталонных-баз-данных-в-репозиторий)
      - [38. Добавить каталог для промежуточного этапа сборки](#38-добавить-каталог-для-промежуточного-этапа-сборки)
      - [39. Создать каталог для выгрузки отчетов о тестировании](#39-создать-каталог-для-выгрузки-отчетов-о-тестировании)
      - [40. Настроить плагин Allure](#40-настроить-плагин-allure)
      - [41. Настроить плагин Throttle Concurrent Builds](#41-настроить-плагин-throttle-concurrent-builds)
      - [42. Настроить подключения CIFS к каталогам](#42-настроить-подключения-cifs-к-каталогам)
      - [43. Сформировать и добавить секретный ключ мобильного клиента](#43-сформировать-и-добавить-секретный-ключ-мобильного-клиента)
      - [44. Одобрить методы для sbm-jenkins-library](#44-одобрить-методы-для-sbm-jenkins-library)
      - [45. Добавить глобальные переменные среды](#45-добавить-глобальные-переменные-среды)
      - [46. Подключить сборочные линии](#46-подключить-сборочные-линии)
      - [47. Подключить сборочную линию SBM FixtureExtensions](#47-подключить-сборочную-линию-sbm-fixtureextensions)
      - [48. Подключить сборочную линию SBM BuildSrc](#48-подключить-сборочную-линию-sbm-buildsrc)
      - [49. Подключить сборочную линию SBM BaselineStorage](#49-подключить-сборочную-линию-sbm-baselinestorage)
      - [50. Подключить сборочную линию SBM Auxiliaries](#50-подключить-сборочную-линию-sbm-auxiliaries)
      - [51. Подключить сборочную линию SBM CleanupStageFolder](#51-подключить-сборочную-линию-sbm-cleanupstagefolder)
      - [52. Подключить сборочную линию SBM AutoFix](#52-подключить-сборочную-линию-sbm-autofix)
      - [53. Подключить сборочную линию SBM ](#53-подключить-сборочную-линию-sbm)
      - [54. Подключить сборочную линию SBM CreateDistributiveRT](#54-подключить-сборочную-линию-sbm-createdistributivert)
      - [55. Подключить сборочную линию SBM CreateDistributive](#55-подключить-сборочную-линию-sbm-createdistributive)
      - [56. Подключить сборочную линию SBM PrepareDT](#56-подключить-сборочную-линию-sbm-preparedt)
      - [57. Подключить сборочную линию SBM PrepareDTBP](#57-подключить-сборочную-линию-sbm-preparedtbp)
      - [58. Подключить сборочную линию SBM PrepareDIB](#58-подключить-сборочную-линию-sbm-preparedib)
      - [59. Подключить сборочную линию SBM ATDD](#59-подключить-сборочную-линию-sbm-atdd)
      - [60. Запустить сборочные линии](#60-запустить-сборочные-линии)


### Подключение приемочных сценариев 

##### 1. Развернуть СППР

Конфигурация УНФ использует функциональность СППР для хранения и запуска приёмочных сценариев.
Данная функциональность описана в документации СППР на сайте ИТС https://its.1c.ru/db/sppr2doc#content:55:hdoc
Перед началом работы следует скачать дистрибутив СППР, развернуть и запустить данную конфигурацию в клиент-серверном или файловом варианте.
Далее предполагается, что работа с СППР ведётся в тонком клиенте.

##### 2. Развернуть GitLab

СППР использует программный интерфейс GitLab для хранения приёмочных сценариев в git.
Далее в инструкции адрес сервера GitLab упоминается в виде макроса `%gitlab-server-name%`

##### 3. Создать проект со сценариями в git

На главной странице GitLab нажать на кнопку "Новый проект", затем "Создать пустой проект".
На следующей странице указать:
* имя проекта, например `SBM`,
* адрес проекта, например группа `sbm`
* URL проекта, например `sbm`
Выбрать уровень доступа (приватный, внутренний или публичный).
Снять флажок "Добавить README файл".
Затем нажать кнопку "Создать проект".
Система предложит использовать настройки Auto DevOps, их нужно отключить. Для этого перейти в раздел проекта "Настройки", "CI/CD", развернуть настройку "Auto DevOps" и снять флажок "По умолчанию для сборочной линии Auto DevOps".

##### 4. Загрузить проект в GitLab

Здесь `%gitlab-server-name%` - адрес вашего сервера GitLab.
Создать каталог с именем `git` там,где у вас лежат остальные репозитории. В случае,если у вас нет других репозиториев, можете создать каталог там,где Вам удобно, например в корне диска `С`
Нижеследующие инструкции клонируют репозиторий в текущий каталог, копируют приёмочные и сборочные сценарии из каталога шаблонов в репозиторий, фиксируют их и отправляют на сервер GitLab. Здесь и далее считаем, что данный репозиторий находится в каталоге c:/git/sbm.
```
rem Для Linux конвертация окончаний строк выполняется только при записи файлов в репозиторий
git config --global core.autocrlf input
rem Для Windows конвертация окончаний строк выполняется как при записи, так и при чтении файлов из репозитория
git config --global core.autocrlf true
rem Окончания строк приемочных сценариев могут различаться в зависимости от того, на каком узле происходила их сборка
rem Следует включить следующую настройку, чтобы окончания строк конвертировались при добавлении файлов в репозиторий
git config --global core.safecrlf warn
git clone git@%gitlab-server-name%:sbm/sbm.git 
cd sbm
git switch -c develop
rem Для Windows команды cp и unzip устанавливаются вместе с git и находятся в папке C:/Program Files/Git/usr/bin
rem Для Windows команда mkdir встроена в операционную систему
mkdir qa
cd qa
cp -r "%APPDATA%/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/QA/bases" .
cp -r "%APPDATA%/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/QA/processes" .
cp -r "%APPDATA%/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/QA/scenarios" .
cd ..
unzip "%APPDATA%/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/QA/Jenkinsfiles.zip"
mkdir fixtures/templates
cd fixtures/templates  
unzip "%APPDATA%/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/QA/templates.zip"  
cd ..
cp -r "%APPDATA%/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/QA/features" . 
rem Вариант для Linux, macOS
mkdir qa
cd qa
cp -r ~/.1cv8/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/QA/bases .
cp -r ~/.1cv8/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/QA/processes .
cp -r ~/.1cv8/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/QA/scenarios .
cd ..
unzip ~/.1cv8/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/QA/Jenkinsfiles.zip
mkdir fixtures/templates
cd fixtures/templates  
unzip ~/.1cv8/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/QA/templates.zip
cd ..
cp -r ~/.1cv8/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/QA/features .
git add -A
git commit -m "add acceptance and assembly scenarios"
git push -u origin develop
```

После выполнения этих операций у вас должна получиться следующая структура каталогов в репозитории:
```
sbm
├───fixtures                                        # каталог в корне репозитория со вспомогательными файлами
│   ├───extensions                                  # вспомогательные расширения
│   ├───features                                    # приёмочные сценарии для финальных тестов
│   ├───helpers                                     # вспомогательные обработки и отчеты
│   └───templates                                   # шаблоны для изготовления дистрибутивов
├───Jenkinsfiles                                    # каталог в корне репозитория со сборочными сценариями
├───qa                                              # каталог в корне репозитория с приемочными сценариями
│   ├───bases                                       # описание эталонных инфобаз
│   ├───processes                                   # для совместимости
│   ├───scenarios                                   # сценарии СППР
│   └───howto.md                                    # эта инструкция
├───sbm                                             # каталог в корне репозитория    
├───.gitattributes                                  # описание двоичных файлов
└───Jenkinsfile                                     # сборочный сценарий по-умолчанию
```

##### 5. Подключить проект к СППР

В интерфейсе СППР перейти в раздел "Администрирование", "Общие настройки", далее развернуть вкладку "Тестирование" и установить флажок "Использовать механизмы тестирования".
В разделе "Администрирование", "Настройки пользователей и прав" создать пользователей, таких как "Администратор" и др. с указанием почты.
Перезапустить СППР и зайти под Администратором, далее перейти в раздел "Главное", "Проекты", затем создать новый проект, например "УНФ", для которого требуется подключить приёмочные сценарии.
В форме этого проекта перейти во вкладку "Разработка" и установить режим разработки в положение "В Git репозитории".
Создать ветку `develop` как основную ветку проекта и указать её в качестве ветки разработки, если не указано другое.
Во вкладке "Разработка" необходимо также указать следующие параметры:
* Адрес Git репозитория - `git@%gitlab-server-name%:sbm/sbm.git`
* Путь к проекту в репозитории - `sbm`
Затем переключиться на вкладку "Тестирование", установить флажок "Хранить сценарии работы пользователей в репозитории" и заполнить поля:
* Адрес сервера: `%gitlab-server-name%` - адрес вашего сервера GitLab
* Имя проекта на git сервере: `sbm/sbm`
* Каталог тестов внутри репозитория: `qa/scenarios`
* Токен: токен для чтения репозитория с правами `read_api`, `read_repository`.
Токен можно сгенерировать на сервере GitLab по адресу `https://%gitlab-server-name%/-/profile/personal_access_tokens` либо `https://%gitlab-server-name%/groups/sbm/-/settings/access_tokens`

##### 6. Загрузить в СППР вспомогательные данные

Открыть в СППР внешнюю обработку `sbm/fixtures/helpers/ExternalDataProcessors/ЗаполнитьСвойстваПриемочныхСценариев.epf`  
Выбрать файл эталонов по пути `sbm/qa/bases/bases.yaml`
Выбрать проект, который настраивали на предыдущем шаге, нажать кнопку `Заполнить`.
В форме обработки будут выведены сообщения:
```
Заполняются свойства для справочника "Пользователи"
Записано ... элементов

Заполняются свойства для справочника "РазделыПроекта"
Записано ... элементов

Заполняются свойства для справочника "ФункцииСистемы"
Записано ... элементов

Заполняются свойства для справочника "ЭталонныеБазыТестирования"
Записано ... элементов
```

После этого можно перейти к следующему шагу.

##### 7. Персональные настройки тестирования в СППР

В интерфейсе СППР перейти в раздел "Органайзер", "Персональные настройки".
В форме "Мои настройки" раскрыть группу "Тестирование" и заполнить поля:
* "Каталог для данных тестирования", например `%APPDATA%/SPPRTestData`
* "Фреймворк для запуска тестов", например `d:/vanessa-automation/vanessa-automation.epf` 
* "Файл, содержащий токен", например `%USERPROFILE%/gitlab.token`
Содержимое токена нужно сгенерировать по адресу `https://%gitlab-server-name%/-/profile/personal_access_tokens`, выбрать для него область доступа "api" и записать в файл `%USERPROFILE%/gitlab.token`

##### 8. Запустить сценарий из СППР

В интерфейсе СППР перейти в раздел "Тестирование", "Сценарии работы пользователей в git".
В списке сценариев открыть нужный, который требуется запустить.
В группе кнопок "Запустить" выбрать пункт "Настройка БД для запуска тестов".
В форме "Настройки локального запуска сценариев" следует указать следующие значения для Клиента тестирования:
* "Адрес ИБ" - адрес информационной базы, в которой развернута эталонная база для тестирования. Например, демобаза из поставки УНФ.
* "Эталонная база" - имя эталоной базы, демобазе из поставки УНФ соответствует эталонная база `Ассоль ООО (УНФ)` с идентификатором `ОпцииВкл`.
Для Менеджера тестирования
* "Сеанс другой базы"
* "Адрес ИБ" - тот же, что и для клиента тестирования
* "Каталог программы", например `C:/Program Files/1cv8/[Платформа]/bin`
* "Пользователь", например `Администратор`

Затем нажать кнопку "Запустить тест".
Запустится менеджер тестирования с обработкой Vanessa Automation, которая загрузит сценарий и запустит его на выполнение в клиенте тестирования.

### Подключение сборочных сценариев

##### 9. Установить Java

Перейти по ссылке https://www.azul.com/downloads  
Отобрать дистрибутив по операционной системе Windows

![](pictures/Screenshot_7.png)

Скачать дистрибутив на локальный компьютер  
Запустить скачанный файл и следовать мастеру установки

##### 10. Установить Jenkins

Перейти по ссылке https://www.jenkins.io/  
Нажать кнопку Download и скачать еженедельную сборку для Windows

![](pictures/Screenshot_8.png)

Запустить скачанный файл и следовать мастеру установки  
Создать каталог `d:/jenkins` и указать его для установки

![](pictures/Screenshot_6.png)

Добавить локального пользователя `Jenkins` и установить флажок `срок действия пароля не ограничен`

![](pictures/Screenshot_9.png)

Добавить в локальные групповые политики `(secpol.msc)` `вход в качестве службы`    
Указать созданного пользователя на предыдущем шаге

![](pictures/Screenshot_10.png)

Указать реквизиты пользователя в качестве запуска службы

![](pictures/Screenshot_11.png)

Указать порт службы Jenkins (по умолчанию порт 8080)

![](pictures/Screenshot_19.png)

Указать путь к каталогу Java

![](pictures/Screenshot_20.png)

Зайти в список служб и убедиться что служба Jenkins установлена и запущена.  
Открыть браузер и перейти по адресу http://localhost:8080/ для проверки корректной установки Jenkins  
Разблокировать Jenkins путем вставки содержимого файла `initialAdminPassword` в поле ввода в интерфейсе Jenkins

![](pictures/Screenshot_1.png)

Нажать кнопку `Install suggested plugins`, произойдет установка плагинов

![](pictures/Screenshot_2.png)

Ввести данные учетной записи администратора Jenkins (Логин, Пароль, ФИО, адрес эл. почты)

![](pictures/Screenshot_3.png)

Заполнить адрес сервиса Jenkins (вместо localhost указать имя компьютера, по которому он доступен из сети)

![](pictures/Screenshot_4.png)

Проверить настройки Jenkins, перейти в раздел `Настроить Jenkins > System`, проверить адрес машины, указать почтовый адрес администратора.

![](pictures/Screenshot_21.png)

Проверить настройки Jenkins, перейти в раздел `Настроить Jenkins > Users` и проверить возможность добавления и редактирования учетных записей пользователей

![](pictures/Screenshot_65.png)

##### 11. Установить плагины Jenkins

Перейти в раздел `Настроить Jenkins > Plugins > Available Plugins` и в строке поиска указать необходимые плагины:

* Allure
* Build Blocker
* Content Replace
* Copy Artifact
* File Operations Plugin
* Pipeline Utility Steps
* Publish Over CIFS
* Stage View
* Warnings
* SCM Skip
* Throttle Concurrent Builds  

![](pictures/Screenshot_5.png)

##### 12. Добавить настройки запуска службы Jenkins

Открыть файл `d:/Jenkins/jenkins.xml` и добавить в секцию `<arguments>` параметры:
```
 -Dfile.encoding=UTF-8
 -Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true
 -Dorg.jenkinsci.plugins.gitclient.Git.timeOut=60
```
![](pictures/Screenshot_64.png)

Перезапустить службу через оснастку "services.msc"

##### 13. Настроить агента Jenkins

Перейти в раздел `Состояние сборщиков` и добавить новый узел по кнопке `+ New Node`

![](pictures/Screenshot_12.png)

Указать название узла `slave-01`, установить переключатель в значение `Постоянный агент`

![](pictures/Screenshot_13.png)

В настройках узла указать Удаленный корневой каталог (в нашем случае `d:/Jenkins_slave`)  
Установить в Метки значения `build` и `test`, а также Способ запуска поставить `Запустить агент, подключив его к контроллеру`

![](pictures/Screenshot_23.png)

Перейти в раздел `Состояние сборщиков` и выбрать наш созданный узел, кликнув по нему  
Создать файл `start.cmd` в каталоге `d:/Jenkins_slave`  
Открыть файл `start.cmd` любым текстовым редактором и скопировать команду запуска для Windows из открывшегося окна узла `Slave-01`

![](pictures/Screenshot_16.png)

Дополнить команду запуска параметрами `-Dfile.encoding=UTF-8` и `--enable-native-access=ALL-UNNAMED`

![](pictures/Screenshot_17.png)

Открыть командную строку Windows, перейти в каталог `d:/Jenkins_slave`  
Запустить на выполнение файл `start.cmd`

![](pictures/Screenshot_18.png)

Для корректного отображения кириллицы в логах Jenkins cледует настроить кодовую страницу командного процессора Windows по умолчанию 65001. Для этого импортировать в реестр следующий файл:
```
REGEDIT4

[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Command Processor]
"Autorun"="@chcp 65001>nul"
```
Убедиться что агент подключился, вывел состояние в консоле `INFO: Connected` и состояние узла в интерфейсе Jenkins  `Agent is connected`

![](pictures/Screenshot_22.png)

##### 14. Установить Visual Studio Code

Перейти по ссылке https://code.visualstudio.com  
Нажать кнопку `Download for Windows`  
Скачать дистрибутив на локальный компьютер  
Запустить скачанный файл и следовать мастеру установки  

##### 15. Настройка групповой разработки

Настроить групповую разработку согласно инструкции https://its.1c.ru/db/edtdoc#content:10054:hdoc

##### 16. Установить 1С: Управление нашей фирмой (УНФ)

Перейти на портал https://releases.1c.ru/project/SmallBusiness30 и скачать актуальный дистрибутив 1С: Управление нашей фирмой  
Распаковать архив с дистрибутивом в нужный каталог  
Запустить файл setup.exe из каталога дистрибутива и следовать мастеру установки

##### 17. Установить платформу 1С

Перейти на портал https://releases.1c.ru/project/Platform83 и скачать актуальный дистрибутив платформы 1С: Предприятие  
Запустить файл setup.exe из каталога дистрибутива и следовать мастеру установки  
Установить компонент `Сервер 1С:Предприятия 8` на шаге выбора компонентов установки

![](pictures/Screenshot_34.png)

Снять флажок `Установить сервер 1С:Предприятия 8 как сервис Windows (рекомендуется)`

![](pictures/Screenshot_35.png)

##### 18. Настроить платформу 1С:Предприятие

В файл `C:/Program Files/1cv8/conf/conf.cfg` добавить строки:
```
DisableUnsafeActionProtection=.*
IgnoreInternetMailServerCertificateVerificationList=localhost
```
**Предупреждение:** Данная рекомендация действительна только в тестовой среде. В производственной среде не применять

![](pictures/Screenshot_63.png)

##### 19. Установить 1С:Предприятие.Элемент Скрипт

Перейти на портал https://releases.1c.ru/project/Script и скачать актуальный дистрибутив  
Распаковать архив и поместить в каталог `[ПапкаSCRIPT]`

##### 20. Установить 1C: Enterprise Development Tools

Перейти на портал https://releases.1c.ru/project/DevelopmentTools10 и скачать актуальный дистрибутив EDT  
Распаковать архив с дистрибутивом в нужный каталог  
Запустить файл 1ce-installer.exe из каталога дистрибутива EDT и следовать мастеру установки

![](pictures/Screenshot_25.png)

##### 21. Enterprise Development Tools: Создание проекта конфигурации

Открыть Enterprise Development Tools и нажать кнопку `Создать новый проект`

![](pictures/Screenshot_27.png)

Добавить новый проект нажатием на кнопку `Новый проект`

![](pictures/Screenshot_28.png)

Ввести название проекта `sbm`, указать каталог местонахождения проекта

![](pictures/Screenshot_30.png)

После создания проекта,откроется окно начальной страницы проекта EDT

![](pictures/Screenshot_33.png)

##### 22. Enterprise Development Tools: Добавление информационной базы

Добавить информационную базу

![](pictures/Screenshot_36.png)

Выбрать шаблон `Управление нашей фирмой (демонстрационная база)`

![](pictures/Screenshot_37.png)

Выбрать версию платформы `8.3` и пункт `на данном компьютере или на компьютере в локальной сети`

![](pictures/Screenshot_38.png)

Указать тип доступа `infobase`, имя пользователя `Администратор`, пароль пустой

![](pictures/Screenshot_39.png)

Указать имя проекта `sbm`, версия проекта - ваша версия платформы 1С  
Установить флажок `Использовать автономный сервер 1С:Предприятие`  
Нажать кнопку `Импорт`

![](pictures/Screenshot_40.png)

##### 23. Enterprise Development Tools: Добавление репозитория git

Переключиться на перспективу `git`, для этого в меню выбрать раздел `Окно > Перспектива > Открыть перспективу > Git`

![](pictures/Screenshot_44.png)

Выбрать в навигации репозиториев пункт `Добавить существующий репозиторий Git`

![](pictures/Screenshot_45.png)

Указать каталог репозитория `git`, отметить флажком существующий репозиторий

![](pictures/Screenshot_46.png)

##### 24. Enterprise Development Tools: Подключение репозитория git к проекту 1С

Переключиться на перспективу `1C` в правом верхнем углу окна EDT  
Выделить корень проекта `sbm`, далее правой кнопкой мыши в контекстном меню выбрать подменю `Групповая разработка > Общий проект...`

![](pictures/Screenshot_47.png)

Выбрать репозиторий из раскрывающего списка, флажком отметить проект

![](pictures/Screenshot_48.png)

Добавить панель `Индексирование Git`, для этого в меню выбрать раздел `Окно > Показать панель > Другое...`

![](pictures/Screenshot_49.png)

Раскрыть раздел `Git` и выбрать пункт `Индексирование Git`

![](pictures/Screenshot_50.png)

Нажать кнопку `добавить все файлы в индекс` в открывшейся панели индексирования Git.  
Дождаться добавления всех файлов в группу панели `Индексированные изменения`

![](pictures/Screenshot_51.png)

Проверить все ли файлы добавлены в командной строке с помощью команды `git status`. Если какие либо файлы не добавлены, добавить их с помощью команды `git add *` 

##### 25. Добавить, зафиксировать и отправить в репозиторий файлы, сформированные на предыдущих шагах

Выполнить команду `git add *`  
Выполнить команду `git commit -m "Добавить файлы конфигурации"`

##### 26. Enterprise Development Tools: Добавить вспомогательные расширения

Открыть список информационных баз в правой панели меню  
Нажать правой кнопкой мыши по информационной базе `Управление нашей фирмой`  
Нажать кнопку подменю `Запустить Конфигуратор`  
Перейти в открывшийся конфигуратор выбранной информационной базы

![](pictures/Screenshot_82.png)

Перейти в меню `Конфигурация > Расширения конфигурации`  

![](pictures/Screenshot_93.png)

Добавить новое расширение по кнопке `Добавить`

![](pictures/Screenshot_94.png)

Выделить созданное расширение на предыдущем шаге  
Перейти в меню `Конфигурация > Загрузить конфигурацию из файла...`

![](pictures/Screenshot_95.png)

Выбрать файл `БыстраяНастройкаПочты.cfe`

![](pictures/Screenshot_96.png)

Открыть список информационных баз в правой панели меню  
Нажать правой кнопкой мыши по информационной базе `Управление нашей фирмой`  
Нажать кнопку подменю `Импортировать расширения...` 

![](pictures/Screenshot_83.png)

Отметить флажком добавленное расширение  
Переименовать в колонке `Имя проекта` проект на имя `БыстраяНастройкаПочты`  

![](pictures/Screenshot_84.png)

Выделить корень проекта `БыстраяНастройкаПочты`, далее правой кнопкой мыши в контекстном меню выбрать подменю `Групповая разработка > Общий проект...`  
Выбрать из списка репозиторий `sbm`  
Указать путь внутри репозитория `fixtures/extensions`  
Отметить флажком проект  

![](pictures/Screenshot_85.png)

Добавить панель `Индексирование Git`, для этого в меню выбрать раздел `Окно > Показать панель > Другое...`  
Раскрыть раздел `Git` и выбрать пункт `Индексирование Git`  
Нажать кнопку `добавить все файлы в индекс` в открывшейся панели индексирования Git.  
Дождаться добавления всех файлов в группу панели `Индексированные изменения`  
Указать сообщение коммита `Добавить файлы расширения БыстраяНастройкаПочты`  
Нажать кнопку `Фиксировать`

![](pictures/Screenshot_86.png)

Проделать те же шаги с остальными файлами из каталога `%APPDATA%/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/QA/extensions`  

##### 27. Enterprise Development Tools: Добавить вспомогательные обработки и отчеты

Открыть подменю правой кнопкой мыши в панели `Навигатор` и выбрать `Импорт...`  

![](pictures/Screenshot_90.png)

Выбрать в группе `1C:Enterprise` раздел `Внешние обработки и отчеты из файлов` и нажать кнопку `Далее`

![](pictures/Screenshot_87.png)

Выбрать все файлы с расширением `.epf` из каталога `%APPDATA%/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/QA/helpers`  
Нажать кнопку `Готово`

![](pictures/Screenshot_88.png)

Выделить корень проекта `helpers`, далее правой кнопкой мыши в контекстном меню выбрать подменю `Групповая разработка > Общий проект...`  

![](pictures/Screenshot_89.png)

Выбрать из списка репозиторий `sbm`  
Указать путь внутри репозитория `fixtures`  
Отметить флажком проект 

![](pictures/Screenshot_91.png)

Добавить панель `Индексирование Git`, для этого в меню выбрать раздел `Окно > Показать панель > Другое...`  
Раскрыть раздел `Git` и выбрать пункт `Индексирование Git`  
Нажать кнопку `добавить все файлы в индекс` в открывшейся панели индексирования Git.  
Дождаться добавления всех файлов в группу панели `Индексированные изменения`  
Указать сообщение коммита `Добавить файлы расширения БыстраяНастройкаПочты`  
Нажать кнопку `Добавить файлы внешних обработок и отчетов`

![](pictures/Screenshot_92.png)

##### 28. Скачать Vanessa Automation

Перейти на портал https://github.com/Pr-Mex/vanessa-automation и скачать актуальный релиз Vanessa Automation (файл `.zip`)  
Распаковать скачанный архив в директорию `d:/vanessa-automation`  

##### 29. Скачать расширение Vanessa Automation

Перейти на портал https://github.com/Pr-Mex/vanessa-automation и скачать актуальный релиз расширения Vanessa Automation (файл `.cfe`)  
Установить имя файлу `VAExtension`  
Положить скачанный файл в удобную для Вас директорию с указанием ветки, например `d:/Auxiliaries/develop`  
```
Для разных версий конфигурации могут использоваться разные версии VAExtension
```

##### 30. Добавить репозиторий с библиотекой SBM Jenkins Library

Создать каталог с именем `sbm-jenkins-library` в репозитории git, например путь `C:/git/sbm-jenkins-library`  
```
Здесь и далее будут указаны локальные пути к репозиториям. Локальные репозитории удобно использовать для отладки.  
Для централизованной проверки качества предпочтительнее использовать git-сервер, и указывать пути к репозиториям на git-сервере  
```
Инициализировать репозиторий командой `git init`  
Cкопировать файлы библиотеки путем выполнения команды в командной строке:
```
unzip "%APPDATA%/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/qa/sbm-jenkins-library.zip" -d "C:/git/sbm-jenkins-library" .
```
Выполнить команду `git add *`
Выполнить команду `git commit -m "Добавить файлы библиотеки"`

##### 31. Указать глобальный репозиторий с библиотекой SBM Jenkins Library

Перейти в раздел `Настроить Jenkins > System`, найти группу `Global Trusted Pipeline Libraries` и нажать кнопку `Добавить`  
Указать в поле `Name` имя `sbm-jenkins-library`  
Заполнить поле `Default version` значением `[ВеткаБиблиотеки]`  
Установить флажок `Load implicitly`  
Выбрать из выпадающего списка поля `Retrieval method` значение `Modern SCM`  
Указать путь репозитория `C:/git/sbm-jenkins-library` в поле `Project Repository`  
Заполнить поле `Library Path (optional)` значением `./`

![](pictures/Screenshot_78.png)

##### 32. Создать каталог для исходных файлов шаблонов дистрибутивов

```
В данном каталоге будут находиться исходные файлы для изготовления дистрибутивов 
```

Создать каталог на диске `D` с именем `SmallBusiness`. В нем создать каталог с именем `BuildSrc_3_0_x`. Далее в нем создать каталог с именем `build`  
Получится путь к каталогу вида `d:/SmallBusiness/BuildSrc_3_0_x/build`  
Создать в каталоге `d:/SmallBusiness/BuildSrc_3_0_x/build` 2 папки с именами `DemoDB` и `ExtFiles`
После выполнения этих операций у вас должна получиться следующая структура каталогов:
```
SmallBusiness
├───BuildSrc_3_0_x                                      
│   └───build                                           
│       ├───DemoDB                                      # каталог исходных файлов шаблонов дистрибутивов
│       └───ExtFiles                                    # каталог с дополнительными файлами
```

![](pictures/Screenshot_79.png)

Скопировать 2 файла с именами `Retail.dt` и `SmallBusiness.dt` из каталога, куда устанавливали дистрибутивы конфигураций, в каталог с именем `DemoDB`

![](pictures/Screenshot_77.png)

![](pictures/Screenshot_80.png)

##### 33. Создать каталог для дистрибутивов

```
Данный каталог необходим для копирования изготовленных дистрибутивов
```  
  
Создать каталог на диске `D` с именем `distrib`. В нем создать каталог с именем `Retail` и каталог с именем `SmallBusiness`. Далее в них создать каталоги с именем версии конфигурации, например: `[ПутьВерсии]`  
Получится путь к каталогу вида `d:/distrib/Retail/[ПутьВерсии]` и `d:/distrib/SmallBusiness/[ПутьВерсии]`
Если планируется подключать сборочную линию `SBM PrepareDTBP`, необходимо создать каталог с именем `Accounting`. Далее в нем создать каталоги с именем версии конфигурации, например: `[ПутьВерсии]`   
Скопировать файлы с именем `1Cv8.cf` из каталога,куда устанавливали дистрибутивы конфигураций, в одноименные каталоги, созданные на предыдущем шаге  
После выполнения этих операций у вас должна получиться следующая структура каталогов:
```
distrib
├───Retail                                              # каталог дистрибутива 1С:Розница
│   └───[ПутьВерсии]                                    # каталог версии дистрибутива 1С:Розница      
│       └───1Cv8.cf                                     # дистрибутив 1С:Розница
├───SmallBusiness                                       # каталог дистрибутива 1С:УНФ
│   └───[ПутьВерсии]                                    # каталог версии дистрибутива 1С:УНФ
│       └───1Cv8.cf                                     # дистрибутив 1С:УНФ
```

![](pictures/Screenshot_14.png)

![](pictures/Screenshot_81.png)

Открыть общий доступ к каталогу `distrib` для локального пользователя `Jenkins`  
Дать право на чтение и запись к каталогу `distrib` для локального пользователя `Jenkins`

![](pictures/Screenshot_31.png)

##### 34. Добавить токен доступа к GitLab

Перейти по адресу `https://%gitlab-server-name%/-/profile/personal_access_tokens` либо `https://%gitlab-server-name%/groups/sbm/-/settings/access_tokens`  
Заполнить поле `Token name` значением `gitlabAccessToken`  
Очистить поле `Срок действия`  
Установить флажки `read_api` и `read_repository`  
Нажать кнопку `Создать личный токен доступа`  
После создания токена, появится поле `Your new личный токен доступа`, значение которого необходимо скопировать для вставки в следующий шаг  

![](pictures/Screenshot_124.png)

##### 35. Добавить секрет для указания файла с токеном доступа к GitLab

Перейти в раздел `Настроить Jenkins > Credentials > System > Global Credentials`  
Добавить по кнопке `Add Credentials` секрет  
Выбрать в поле `Kind` значение `Secret text`  
Заполнить поле `Secret` значением текстового ключа токена, скопированного на предыдущем шаге, поле `ID` значением `gitlabAccessToken`, поле `Description` значением пути к настройкам токена в профиле GitLab  
Нажать кнопку `Save`

![](pictures/Screenshot_123.png)

##### 36. Создать каталог для эталонных баз тестирования

```
Каталог, в котором будут лежать эталонные базы для тестирования, не входящие в комплект поставки дистрибутива  
```  

Перейти в каталог `d:/SmallBusiness`  
Создать каталог с именем `DTUpdate`  
Получится путь к каталогу вида `d:/SmallBusiness/DTUpdate`

![](pictures/Screenshot_117.png)

##### 37. Добавление новых эталонных баз данных в репозиторий

Перед добавлением новых эталонных баз, стоит задуматься о причинах, почему не хватает текущих данных.  
Каждая эталонная база занимает примерно + 1 gb места, соответственно увеличивает размер дистрибутива.  
Если все-таки появилось понимание, что можно удовлетвориться существующими эталонными базами,  
необходимо выполнить нижеперечисленные шаги для доработки необходимого эталона  

* Открыть файл `bases.yaml` в репозитории `sbm` по пути `qa/bases`. Структура файла приведена на скриншоте ниже.  
* Установить переменную пути к файлу с эталоном вида: `%<Переменная>%/<ИмяФайлаЭталонаСРасширением>`  

![](pictures/Screenshot_119.png)

* Перейти в раздел `Настроить Jenkins > System > Глобальные переменные`  

Добавить переменные среды для указания пути к каталогам с эталонными базами тестирования:  
* имя: dtPath1 значение: //<сетевое имя компьютера>/SmallBusiness/BuildSrc_3_0_x/build/DemoDB
* имя: dtPath2 значение: //<сетевое имя компьютера>/SmallBusiness/DTUpdate

```
Переменная среда dtPath2 необходима в том случае, если будут использоваться эталонные базы для тестирования,  
не входящие в комплект поставки дистрибутива
```

![](pictures/Screenshot_120.png)

Нажать кнопку `Save`  

##### 38. Добавить каталог для промежуточного этапа сборки

```
Каталог, в котором будут лежать файлы поставок для публикации в подготовительную зону
```  

Создать каталог на диске `D` с именем `stage`. В нем создать каталог с именем `supplies`

![](pictures/Screenshot_62.png)

Открыть общий доступ к каталогу `stage` для локального пользователя `Jenkins`  
Дать право на чтение и запись к каталогу `stage` для локального пользователя `Jenkins`

![](pictures/Screenshot_31.png)

##### 39. Создать каталог для выгрузки отчетов о тестировании 

```
В этот каталог будут публиковаться файлы для передачи в СППР
```  

Создать каталог на диске `D` с именем `acceptanceReports`. В нем создать каталог с именем `share`. Далее в нем создать каталог с именем `SBM`  
Получится путь к каталогу вида `d:/acceptanceReports/share/SBM`  
Открыть общий доступ к каталогу `acceptanceReports` для локального пользователя `Jenkins`  
Дать право на чтение и запись к каталогу `acceptanceReports` для локального пользователя `Jenkins`

![](pictures/Screenshot_31.png)

##### 40. Настроить плагин Allure

Перейти в раздел `Настроить Jenkins > Tools`

![](pictures/Screenshot_112.png)

Добавить командную строку Allure по кнопке `Добавить Allure Commandline`  
Указать в поле `Имя` значение `allure-cli`  
Проверить, что установлен флажок `Установить автоматически`  
Нажать кнопку `Сохранить`

![](pictures/Screenshot_113.png)

##### 41. Настроить плагин Throttle Concurrent Builds

```
Плагин контролирует очередь доступных узлов тестирования для сборочной линии ATDD
```

Перейти в раздел `Настроить Jenkins > System`, далее найти группу `Throttle Concurrent Builds` и нажать кнопку `Добавить категорию`  

![](pictures/Screenshot_139.png)

Заполнить поле `Category Name` значением `doAcceptanceTestThrottle`
Указать в поле `Maximum Total Concurrent Builds` общее количество тестовых узлов с меткой `test`
Нажать кнопку `Save`  

![](pictures/Screenshot_140.png)

##### 42. Настроить подключения CIFS к каталогам

```
В данные каталоги будут публиковаться дистрибутивы и отчеты
```  

Перейти в раздел `Настроить Jenkins > System`, далее найти группу `Publish over CIFS` и нажать кнопку `Добавить`

![](pictures/Screenshot_76.png)

Заполнить поле `Name` значением `stageFolder`  
Указать в поле `Hostname` сетевое имя компьютера  
Указать в поле `Username` локального пользователя `Jenkins`, в поле `Password` пароль пользователя  
Заполнить поле `Share` значением `stage/supplies`  
Раскрыть группу настроек `Расширенные` и в поле `Buffer size (Bytes)` указать количество байт `16000000`. Далее в поле `SMB Version` выбрать значение `SMB v3`  
Нажать кнопку `Test Configuration` и после ее выполнения убедиться, что слева от нее появится статус `succsesfull`

![](pictures/Screenshot_73.png)

Добавить вторую настройку общего каталога нажатием на кнопку `Добавить`  
Заполнить поле `Name` значением `distribFolder`  
Указать в поле `Hostname` сетевое имя компьютера  
Указать в поле `Username` локального пользователя `Jenkins`, в поле `Password` пароль пользователя  
Заполнить поле `Share` значением `distrib`  
Раскрыть группу настроек `Расширенные` и в поле `Buffer size (Bytes)` указать количество байт `16000000`. Далее в поле `SMB Version` выбрать значение `SMB v3`  
Нажать кнопку `Test Configuration` и после ее выполнения убедиться, что слева от нее появится статус `succsesfull`

![](pictures/Screenshot_67.png)

Добавить третью настройку общего каталога нажатием на кнопку `Добавить`  
Заполнить поле `Name` значением `reportsFolder`  
Указать в поле `Hostname` сетевое имя компьютера  
Указать в поле `Username` локального пользователя `Jenkins`, в поле `Password` пароль пользователя  
Заполнить поле `Share` значением `acceptanceReports`  
Раскрыть группу настроек `Расширенные` и в поле `Buffer size (Bytes)` указать количество байт `16000000`. Далее в поле `SMB Version` выбрать значение `SMB v3`  
Нажать кнопку `Test Configuration` и после ее выполнения убедиться, что слева от нее появится статус `succsesfull`

![](pictures/Screenshot_105.png)

Нажать кнопку `Save`

##### 43. Сформировать и добавить секретный ключ мобильного клиента

Открыть свойство конфигурации в EDT  
Открыть настройку `Подпись мобильного клиента`  
Нажать кнопку `Создать закрытый ключ...` и сохранить его в каталог на компьютере

![](pictures/Screenshot_68.png)

Перейти в раздел `Настроить Jenkins > Credentials > System > Global Credentials`  
Добавить по кнопке `Add Credentials` секрет  
Выбрать в поле `Kind` значение `Secret file`  
Выбрать сформированный файл ключа в поле `Secret`  
Заполнить поле `ID` значением `sbm-pem-file`, поле `Description` оставляем пустым

![](pictures/Screenshot_69.png)

##### 44. Одобрить методы для sbm-jenkins-library

```
Библиотека sbm-jenkins-library использует некоторые методы, которые требуется одобрить в соответствующем разделе Jenkins.
Ниже перечислен список этих методов.
```  

Перейти в раздел `Настроить Jenkins > In-process Script Approval`

![](pictures/Screenshot_114.png)

Скопировать подписи из списка ниже и вставить в поле `Signatures already approved:`

```
method hudson.model.Computer setTemporarilyOffline boolean hudson.slaves.OfflineCause
method hudson.model.Slave getComputer
method java.time.Instant atZone java.time.ZoneId
method java.time.chrono.ChronoLocalDate isBefore java.time.chrono.ChronoLocalDate
method java.time.chrono.ChronoZonedDateTime toLocalDate
method jenkins.model.Jenkins getNode java.lang.String
new hudson.slaves.OfflineCause$ByCLI java.lang.String
staticMethod java.time.Instant ofEpochMilli long
staticMethod java.time.ZoneId systemDefault
staticMethod jenkins.model.Jenkins getInstance
staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods getAt java.lang.Object java.lang.String

```

![](pictures/Screenshot_115.png)

##### 45. Добавить глобальные переменные среды

Перейти в раздел `Настроить Jenkins > System > Глобальные переменные`  
Установить флажок `Переменные среды`, если он не установлен   

![](pictures/Screenshot_118.png)

Нажать кнопку `Save`

Добавить переменные среды для указания пути к серверу GitLab и ID проекта  
* имя: GITLAB_SERVER_URL значение: https://<адрес GitLab сервера>  
* имя: GITLAB_SBM_ID значение: ID проекта на GitLab сервере  
* имя: GITLAB_SJL_ID значение: ID проекта библиотеки на GitLab сервере.  
       Используется для архивации библиотеки "SBM Jenkins Library" при изготовлении дистрибутива.  

![](pictures/Screenshot_121.png)

![](pictures/Screenshot_122.png)

Добавить переменную среду для указания email адреса получателя уведомлений  
* имя: NOTIFY_RECIPIENTS значение: email адрес получателя уведомлений  

Добавить переменную среду для указания пути к каталогу с дистрибутивами  
* имя: DISTRIB_FOLDER значение: сетевой путь к каталогу с дистрибутивами  

Добавить переменную среду для указания пути к каталогу с исходными файлами шаблонов дистрибутивов  
* имя: BUILD_SRC_3_0_X значение: сетевой путь к шаблонам дистрибутивов  

Добавить переменную среду для указания пути к каталогу с отчетами о тестировании  
* имя: ACCEPTANCE_REPORTS_PATH значение: сетевой путь к отчетам о тестировании  

Добавить переменную среду для перечисления эталонных баз для тестирования  
* имя: BASES_IDS_TO_PUBLISH значение: имена файлов эталонных баз для тестирования  

![](pictures/Screenshot_60.png)

Добавить переменную среду для указания пути к каталогу вспомогательных артефактов  
* имя: AUXILIARIES значение: сетевой путь к каталогу вспомогательных артефактов

Добавить переменную среду для указания пути к каталогу публикации дистрибутивов  
* имя: STAGE_FOLDER значение: сетевой путь к каталогу публикации дистрибутивов

##### 46. Подключить сборочные линии

Для подключения сборочных линий имеется 2 варианта создания заданий:
* Автоматически путем запуска скрипта, который создаст задания в Jenkins (описаны в шаге 45)
* Вручную добавлением заданий (описаны в шагах с 46 по 55)

В данном шаге будет описан вариант запуска скрипта. Если вы хотите создать задания вручную, необходимо пропустить данный шаг и перейти к следующему.

Создать файл json с параметрами доступа к jenkins в формате, изображенном ниже:  
```
{"Пользователь": "login","Пароль": "password","АдресСервера": "http://localhost:8080"}
```
где:
* Пользователь - имя пользователя Jenkins
* Пароль - пароль пользователя Jenkins
* АдресСервера - адрес сервера, где расположен Jenkins

Перейти в каталог с распакованным дистрибутивом, в зависимости от используемой операционной системы:
* Windows: `%APPDATA%/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/QA`
* Linux: `~/.1cv8/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/QA`
* macOS: `~/.1cv8/1C/1cv8/tmplts/1c/SmallBusiness/[ПутьВерсии]/QA`
Запустить скрипт с помощью команды ```[ПапкаSCRIPT]/executor createJenkinsJobs.sbsl```
Скрипт запросит данные для ввода:
* Путь к файлу параметров доступа - полный путь к файлу с параметрами доступа, который создали ранее
* Путь к репозиторию - путь к каталогу с репозиторием
* Путь к репозиторию с библиотекой - путь к каталогу библиотеки репозитория sbm-jenkins-library

После выполнения скрипта зайти в интерфейс Jenkins и проверить, что задания создались

##### 47. Подключить сборочную линию SBM FixtureExtensions

Добавить в Jenkins новый Item по кнопке `Создать Item`

![](pictures/Screenshot_53.png)

Ввести имя `SBM FixtureExtensions` и выбрать тип `Multibranch Pipeline`

![](pictures/Screenshot_70.png)

Добавить `Branch Source`, указать путь `Project Repository "c:/git/sbm"`

![](pictures/Screenshot_55.png)

![](pictures/Screenshot_56.png)

![](pictures/Screenshot_57.png)

Добавить `Suppress automatic SCM triggering` по кнопке `Add property` для запрета автоматического запуска сборки    

![](pictures/Screenshot_126.png)

![](pictures/Screenshot_125.png)

Установить флажок `Abort Builds` в разделе `Orphaned Item Strategy`

![](pictures/Screenshot_58.png)

Добавить раздел `Library` в группе `Pipeline Libraries` по кнопке `Добавить`

![](pictures/Screenshot_59.png)

Указать `Name` - `"sbm-jenkins-library"`, `Default version` - `"[ВеткаБиблиотеки]"`  
Установить флажок `Load implicitly`  
Убедиться, что в поле `Retrieval method` выбрано значение  `Modern SCM`  
Убедиться, что в поле `Source Code Management` выбрано значение `Git`  
Указать путь в поле `Project Repository` - `c:/git/sbm-jenkins-library`, либо адрес репозитория на сервере  
Заполнить поле `Script Path` значением `Jenkinsfiles/FixtureExtensions.groovy` в разделе `Build Configuration`  
Нажать кнопку `Save`

![](pictures/Screenshot_71.png)

##### 48. Подключить сборочную линию SBM BuildSrc

Добавить в Jenkins новый Item по кнопке `Создать Item`

![](pictures/Screenshot_53.png)

Ввести имя `SBM BuildSrc` и выбрать тип `Multibranch Pipeline`

![](pictures/Screenshot_32.png)

Добавить `Branch Source`, указать путь `Project Repository "c:/git/sbm"`

![](pictures/Screenshot_55.png)

![](pictures/Screenshot_56.png)

![](pictures/Screenshot_57.png)

Добавить `Suppress automatic SCM triggering` по кнопке `Add property` для запрета автоматического запуска сборки    

![](pictures/Screenshot_126.png)

![](pictures/Screenshot_125.png)

Установить флажок `Abort Builds` в разделе `Orphaned Item Strategy`

![](pictures/Screenshot_58.png)

Добавить раздел `Library` в группе `Pipeline Libraries` по кнопке `Добавить`

![](pictures/Screenshot_59.png)

Указать `Name` - `"sbm-jenkins-library"`, `Default version` - `"[ВеткаБиблиотеки]"`  
Установить флажок `Load implicitly`  
Убедиться, что в поле `Retrieval method` выбрано значение  `Modern SCM`  
Убедиться, что в поле `Source Code Management` выбрано значение `Git`  
Указать путь в поле `Project Repository` - `c:/git/sbm-jenkins-library`, либо адрес репозитория на сервере  
Заполнить поле `Script Path` значением `Jenkinsfiles/BuildSrc.groovy` в разделе `Build Configuration`  
Нажать кнопку `Save`

![](pictures/Screenshot_41.png)

![](pictures/Screenshot_108.png)

##### 49. Подключить сборочную линию SBM BaselineStorage

Добавить в Jenkins новый Item по кнопке `Создать Item`

![](pictures/Screenshot_53.png)

Ввести имя `SBM BaselineStorage` и выбрать тип `Multibranch Pipeline`

![](pictures/Screenshot_102.png)

Добавить `Branch Source`, указать путь `Project Repository: "c:/git/sbm"`

![](pictures/Screenshot_55.png)

![](pictures/Screenshot_56.png)

![](pictures/Screenshot_57.png)

Добавить `Suppress automatic SCM triggering` по кнопке `Add property` для запрета автоматического запуска сборки    

![](pictures/Screenshot_126.png)

![](pictures/Screenshot_125.png)

Установить флажок `Abort Builds` в разделе `Orphaned Item Strategy`

![](pictures/Screenshot_58.png)

Добавить раздел `Library` в группе `Pipeline Libraries` по кнопке `Добавить`

![](pictures/Screenshot_59.png)

Указать `Name` - `"sbm-jenkins-library"`, `Default version` - `"[ВеткаБиблиотеки]"`  
Установить флажок `Load implicitly`  
Убедиться, что в поле `Retrieval method` выбрано значение  `Modern SCM`  
Убедиться, что в поле `Source Code Management` выбрано значение `Git`  
Указать путь в поле `Project Repository` - `c:/git/sbm-jenkins-library`, либо адрес репозитория на сервере  
Заполнить поле `Script Path` значением `Jenkinsfiles/BaselineStorage.groovy` в разделе `Build Configuration`  
Нажать кнопку `Save`

![](pictures/Screenshot_109.png)

##### 50. Подключить сборочную линию SBM Auxiliaries

Добавить в Jenkins новый Item по кнопке `Создать Item`  

![](pictures/Screenshot_53.png)

Ввести имя `SBM Auxiliaries` и выбрать тип `Multibranch Pipeline`  

![](pictures/Screenshot_100.png)

Добавить `Branch Source`, указать путь `Project Repository: "c:/git/sbm"`  

![](pictures/Screenshot_55.png)

![](pictures/Screenshot_56.png)

![](pictures/Screenshot_57.png)

Добавить `Suppress automatic SCM triggering` по кнопке `Add property` для запрета автоматического запуска сборки    

![](pictures/Screenshot_126.png)

![](pictures/Screenshot_125.png)

Установить флажок `Abort Builds` в разделе `Orphaned Item Strategy`  

![](pictures/Screenshot_58.png)

Добавить раздел `Library` в группе `Pipeline Libraries` по кнопке `Добавить`  

![](pictures/Screenshot_59.png)

Указать `Name` - `"sbm-jenkins-library"`, `Default version` - `"[ВеткаБиблиотеки]"`  
Установить флажок `Load implicitly`  
Убедиться, что в поле `Retrieval method` выбрано значение  `Modern SCM`  
Убедиться, что в поле `Source Code Management` выбрано значение `Git`  
Указать путь в поле `Project Repository` - `c:/git/sbm-jenkins-library`, либо адрес репозитория на сервере  
Заполнить поле `Script Path` значением `Jenkinsfiles/Auxiliaries.groovy` в разделе `Build Configuration`  
Нажать кнопку `Save`  

![](pictures/Screenshot_42.png)

![](pictures/Screenshot_101.png)

##### 51. Подключить сборочную линию SBM CleanupStageFolder

Добавить в Jenkins новый Item по кнопке `Создать Item`  

![](pictures/Screenshot_53.png)

Ввести имя `SBM CleanupStageFolder` и выбрать тип `Multibranch Pipeline`  

![](pictures/Screenshot_127.png)

Добавить `Branch Source`, указать путь `Project Repository: "c:/git/sbm"`  

![](pictures/Screenshot_55.png)

![](pictures/Screenshot_56.png)

![](pictures/Screenshot_57.png)

Добавить `Suppress automatic SCM triggering` по кнопке `Add property` для запрета автоматического запуска сборки    

![](pictures/Screenshot_126.png)

![](pictures/Screenshot_125.png)

Установить флажок `Abort Builds` в разделе `Orphaned Item Strategy`  

![](pictures/Screenshot_58.png)

Добавить раздел `Library` в группе `Pipeline Libraries` по кнопке `Добавить`  

![](pictures/Screenshot_59.png)

Указать `Name` - `"sbm-jenkins-library"`, `Default version` - `"[ВеткаБиблиотеки]"`  
Установить флажок `Load implicitly`  
Убедиться, что в поле `Retrieval method` выбрано значение  `Modern SCM`  
Убедиться, что в поле `Source Code Management` выбрано значение `Git`  
Указать путь в поле `Project Repository` - `c:/git/sbm-jenkins-library`, либо адрес репозитория на сервере  
Заполнить поле `Script Path` значением `Jenkinsfiles/CleanupStageFolder.groovy` в разделе `Build Configuration`  
Нажать кнопку `Save`  

![](pictures/Screenshot_42.png)

![](pictures/Screenshot_128.png)

##### 52. Подключить сборочную линию SBM AutoFix

Добавить в Jenkins новый Item по кнопке `Создать Item`  

![](pictures/Screenshot_53.png)

Ввести имя `SBM AutoFix` и выбрать тип `Multibranch Pipeline`  

![](pictures/Screenshot_129.png)

Добавить `Branch Source`, указать путь `Project Repository: "c:/git/sbm"`

![](pictures/Screenshot_55.png)

![](pictures/Screenshot_56.png)

![](pictures/Screenshot_57.png)

Добавить `Suppress automatic SCM triggering` по кнопке `Add property` для запрета автоматического запуска сборки    

![](pictures/Screenshot_126.png)

![](pictures/Screenshot_125.png)

Установить флажок `Abort Builds` в разделе `Orphaned Item Strategy`

![](pictures/Screenshot_58.png)

Добавить раздел `Library` в группе `Pipeline Libraries` по кнопке `Добавить`

![](pictures/Screenshot_59.png)

Указать `Name` - `"sbm-jenkins-library"`, `Default version` - `"[ВеткаБиблиотеки]"`  
Установить флажок `Load implicitly`  
Убедиться, что в поле `Retrieval method` выбрано значение  `Modern SCM`  
Убедиться, что в поле `Source Code Management` выбрано значение `Git`  
Указать путь в поле `Project Repository` - `c:/git/sbm-jenkins-library`, либо адрес репозитория на сервере  
Заполнить поле `Script Path` значением `Jenkinsfiles/AutoFix.groovy` в разделе `Build Configuration`  
Нажать кнопку `Save`

![](pictures/Screenshot_42.png)

![](pictures/Screenshot_130.png)

##### 53. Подключить сборочную линию SBM

Добавить в Jenkins новый Item по кнопке `Создать Item`

![](pictures/Screenshot_53.png)

Ввести имя `SBM` и выбрать тип `Multibranch Pipeline`

![](pictures/Screenshot_54.png)

Добавить `Branch Source`, указать путь `Project Repository: "c:/git/sbm"`

![](pictures/Screenshot_55.png)

![](pictures/Screenshot_56.png)

![](pictures/Screenshot_57.png)

Добавить `Suppress automatic SCM triggering` по кнопке `Add property` для запрета автоматического запуска сборки    

![](pictures/Screenshot_126.png)

![](pictures/Screenshot_125.png)

Установить флажок `Abort Builds` в разделе `Orphaned Item Strategy`

![](pictures/Screenshot_58.png)

Добавить раздел `Library` в группе `Pipeline Libraries` по кнопке `Добавить`

![](pictures/Screenshot_59.png)

Указать `Name` - `"sbm-jenkins-library"`, `Default version` - `"[ВеткаБиблиотеки]"`  
Установить флажок `Load implicitly`  
Убедиться, что в поле `Retrieval method` выбрано значение  `Modern SCM`  
Убедиться, что в поле `Source Code Management` выбрано значение `Git`  
Указать путь в поле `Project Repository` - `c:/git/sbm-jenkins-library`, либо адрес репозитория на сервере  
Заполнить поле `Script Path` значением `Jenkinsfile` в разделе `Build Configuration`  
Нажать кнопку `Save`

![](pictures/Screenshot_42.png)

![](pictures/Screenshot_107.png)

##### 54. Подключить сборочную линию SBM CreateDistributiveRT

Добавить в Jenkins новый Item по кнопке `Создать Item`  

![](pictures/Screenshot_53.png)

Ввести имя `SBM CreateDistributiveRT` и выбрать тип `Multibranch Pipeline`  

![](pictures/Screenshot_26.png)

Добавить `Branch Source`, указать путь `Project Repository: "c:/git/sbm"`  

![](pictures/Screenshot_55.png)

![](pictures/Screenshot_56.png)

![](pictures/Screenshot_57.png)

Добавить `Suppress automatic SCM triggering` по кнопке `Add property` для запрета автоматического запуска сборки    

![](pictures/Screenshot_126.png)

![](pictures/Screenshot_125.png)

Установить флажок `Abort Builds` в разделе `Orphaned Item Strategy`  

![](pictures/Screenshot_58.png)

Добавить раздел `Library` в группе `Pipeline Libraries` по кнопке `Добавить`  

![](pictures/Screenshot_59.png)

Указать `Name` - `"sbm-jenkins-library"`, `Default version` - `"[ВеткаБиблиотеки]"`  
Установить флажок `Load implicitly`  
Убедиться, что в поле `Retrieval method` выбрано значение  `Modern SCM`  
Убедиться, что в поле `Source Code Management` выбрано значение `Git`  
Указать путь в поле `Project Repository` - `c:/git/sbm-jenkins-library`, либо адрес репозитория на сервере  
Заполнить поле `Script Path` значением `Jenkinsfiles/CreateDistributiveRT.groovy` в разделе `Build Configuration`  
Нажать кнопку `Save`  

![](pictures/Screenshot_42.png)

![](pictures/Screenshot_52.png)

##### 55. Подключить сборочную линию SBM CreateDistributive

Добавить в Jenkins новый Item по кнопке `Создать Item`  

![](pictures/Screenshot_53.png)

Ввести имя `SBM CreateDistributive` и выбрать тип `Multibranch Pipeline`  

![](pictures/Screenshot_61.png)

Добавить `Branch Source`, указать путь `Project Repository: "c:/git/sbm"`  

![](pictures/Screenshot_55.png)

![](pictures/Screenshot_56.png)

![](pictures/Screenshot_57.png)

Добавить `Suppress automatic SCM triggering` по кнопке `Add property` для запрета автоматического запуска сборки    

![](pictures/Screenshot_126.png)

![](pictures/Screenshot_125.png)

Установить флажок `Abort Builds` в разделе `Orphaned Item Strategy`  

![](pictures/Screenshot_58.png)

Добавить раздел `Library` в группе `Pipeline Libraries` по кнопке `Добавить`  

![](pictures/Screenshot_59.png)

Указать `Name` - `"sbm-jenkins-library"`, `Default version` - `"[ВеткаБиблиотеки]"`  
Установить флажок `Load implicitly`  
Убедиться, что в поле `Retrieval method` выбрано значение  `Modern SCM`  
Убедиться, что в поле `Source Code Management` выбрано значение `Git`  
Указать путь в поле `Project Repository` - `c:/git/sbm-jenkins-library`, либо адрес репозитория на сервере  
Заполнить поле `Script Path` значением `Jenkinsfiles/CreateDistributive.groovy` в разделе `Build Configuration`  
Нажать кнопку `Save`  

![](pictures/Screenshot_42.png)

![](pictures/Screenshot_43.png)

##### 56. Подключить сборочную линию SBM PrepareDT

Добавить в Jenkins новый Item по кнопке `Создать Item`

![](pictures/Screenshot_53.png)

Ввести имя `SBM PrepareDT` и выбрать тип `Multibranch Pipeline`

![](pictures/Screenshot_98.png)

Добавить `Branch Source`, указать путь `Project Repository "c:/git/sbm"`

![](pictures/Screenshot_55.png)

![](pictures/Screenshot_56.png)

![](pictures/Screenshot_57.png)

Добавить `Suppress automatic SCM triggering` по кнопке `Add property` для запрета автоматического запуска сборки    

![](pictures/Screenshot_126.png)

![](pictures/Screenshot_125.png)

Установить флажок `Abort Builds` в разделе `Orphaned Item Strategy`

![](pictures/Screenshot_58.png)

Добавить раздел `Library` в группе `Pipeline Libraries` по кнопке `Добавить`

![](pictures/Screenshot_59.png)

Указать `Name` - `"sbm-jenkins-library"`, `Default version` - `"[ВеткаБиблиотеки]"`  
Установить флажок `Load implicitly`  
Убедиться, что в поле `Retrieval method` выбрано значение  `Modern SCM`  
Убедиться, что в поле `Source Code Management` выбрано значение `Git`  
Указать путь в поле `Project Repository` - `c:/git/sbm-jenkins-library`, либо адрес репозитория на сервере  
Заполнить поле `Script Path` значением `Jenkinsfiles/PrepareDT.groovy` в разделе `Build Configuration`  
Нажать кнопку `Save`

![](pictures/Screenshot_110.png)

##### 57. Подключить сборочную линию SBM PrepareDTBP

Добавить в Jenkins новый Item по кнопке `Создать Item`  

![](pictures/Screenshot_53.png)

Ввести имя `SBM PrepareDTBP` и выбрать тип `Pipeline`  

![](pictures/Screenshot_131.png)

Установить флажок `Do not allow concurrent builds`
Установить флажок `Abort previous builds`
Установить флажок `Удалять устаревшие сборки`  

![](pictures/Screenshot_132.png)

Установить флажок `Это - параметризованная сборка`
Добавить параметр `UPSTREAM_JOB_NAME` с типом Строка
Установить у параметра значение по умолчанию `SBM/develop`  

![](pictures/Screenshot_133.png)

Установить ежедневный периодический запуск по расписанию в разделе `Triggers` 

![](pictures/Screenshot_134.png)

Выбрать значение `PipeLine script from SCM` в поле `Definition` раздела `PipeLine`
Указать путь `Repository URL "c:/git/sbm"`, либо адрес репозитория на сервере
Указать имя ветки в поле `Branch Specifier (blank for 'any')`  

![](pictures/Screenshot_135.png)

Заполнить поле `Script Path` значением `Jenkinsfiles/PrepareDTBP.groovy`
Нажать кнопку `Save`  

![](pictures/Screenshot_136.png)

##### 58. Подключить сборочную линию SBM PrepareDIB

Добавить в Jenkins новый Item по кнопке `Создать Item`  

![](pictures/Screenshot_53.png)

Ввести имя `SBM PrepareDIB` и выбрать тип `Pipeline`  

![](pictures/Screenshot_137.png)

Установить флажок `Do not allow concurrent builds`
Установить флажок `Abort previous builds`
Установить флажок `Удалять устаревшие сборки`  

![](pictures/Screenshot_132.png)

Выбрать значение `PipeLine script from SCM` в поле `Definition` раздела `PipeLine`
Указать путь `Repository URL "c:/git/sbm"`, либо адрес репозитория на сервере
Указать имя ветки в поле `Branch Specifier (blank for 'any')`  

![](pictures/Screenshot_135.png)

Заполнить поле `Script Path` значением `Jenkinsfiles/PrepareDIB.groovy`
Нажать кнопку `Save`  

![](pictures/Screenshot_138.png)

##### 59. Подключить сборочную линию SBM ATDD

Добавить в Jenkins новый Item по кнопке `Создать Item`

![](pictures/Screenshot_53.png)

Ввести имя `SBM ATDD` и выбрать тип `Multibranch Pipeline`

![](pictures/Screenshot_99.png)

Добавить `Branch Source`, указать путь `Project Repository "c:/git/sbm"`

![](pictures/Screenshot_55.png)

![](pictures/Screenshot_56.png)

![](pictures/Screenshot_57.png)

Добавить `Suppress automatic SCM triggering` по кнопке `Add property` для запрета автоматического запуска сборки    

![](pictures/Screenshot_126.png)

![](pictures/Screenshot_125.png)

Установить флажок `Abort Builds` в разделе `Orphaned Item Strategy`

![](pictures/Screenshot_58.png)

Добавить раздел `Library` в группе `Pipeline Libraries` по кнопке `Добавить`

![](pictures/Screenshot_59.png)

Указать `Name` - `"sbm-jenkins-library"`, `Default version` - `"[ВеткаБиблиотеки]"`  
Установить флажок `Load implicitly`  
Убедиться, что в поле `Retrieval method` выбрано значение  `Modern SCM`  
Убедиться, что в поле `Source Code Management` выбрано значение `Git`  
Указать путь в поле `Project Repository` - `c:/git/sbm-jenkins-library`, либо адрес репозитория на сервере  
Заполнить поле `Script Path` значением `Jenkinsfiles/ATDD.groovy` в разделе `Build Configuration`  
Нажать кнопку `Save`  

![](pictures/Screenshot_111.png)

##### 60. Запустить сборочные линии

Запустить сборочные линии по очереди в порядке, указанном ниже:

```
1. SBM FixtureExtensions - Задание собирает вспомогательные расширения для тестирования
2. SBM BuildSrc - Задание копирует исходные файлы шаблонов дистрибутивов из каталога, созданного на шаге 31. Содержит артефакты исходных файлов шаблонов дистрибутивов.
3. SBM BaselineStorage - Задание копирует эталонные базы для тестирования из каталогов, указанных в глобальных переменных средах. Содержит артефакты эталонных баз для тестирования.
4. SBM Auxiliaries - Хранит вспомогательные артефакты, которые не поставляются в составе дистрибутива, такие как Vanessa Automation, GreenMail, и т.п.
5. SBM AutoFix - Поднимает версию конфигурации, обновляет кэш и служебные данные сценариев, публикует изменения в GitLab путем создания запроса на слияние и запуска автотестов.
6. SBM - В результате выполнения этого задания готовится cf и промежуточные артефакты для сценариев и сборки дистрибутивов.
7. SBM CreateDistributiveRT - Собирает дистрибутив 1С:Розница, хранит артефакты для создания дистрибутива 1С:УНФ. Данная сборка запускается автоматически после шага "5 SBM".
8. SBM CreateDistributive - Собирает дистрибутив 1С:УНФ, хранит артефакты для публикации дистрибутивов. Данная сборка запускается автоматически после шага "5 SBM".
9. SBM PrepareDT - Готовит информационные базы для запуска приемочных сценариев. Содержит артефакты в виде подготовленных и выгруженных файлов баз данных. Данная сборка запускается автоматически после шага "5 SBM".
10. SBM PrepareDTBP - Готовит информационные базы для запуска проверки обмена с конфигурацией 1С:8 Бухгалтерия предприятия. Содержит артефакты в виде подготовленных и выгруженных файлов баз данных.
10. SBM PrepareDIB - Готовит распределенные информационные базы для запуска приемочных сценариев. Содержит артефакты в виде подготовленных и выгруженных файлов баз данных.
12. SBM ATDD - Запускает приемочные сценарии. Содержит артефакты в виде файлов отчетов о прохождении тестов. Данная сборка запускается автоматически после шага "8 SBM PrepareDT".
13. SBM CleanupStageFolder - Запускает очистку публикуемых дистрибутивов по релизу сборки. Сохраняет последние 5 опубликованных поставок.
```


