/1c-cli

Primary LanguageBatchfile

Цель

Преобразование исходных кодов 1С:Предприятие в файлы поставки при использовании практики Непрерывной интеграции

Задачи

  1. Прогон исходных кодов 1С: Предприятие по сборочной линии. Этапы сборочной линии:
  • Создание ИБ из исходников конфигурации и расширений. В сборке может участвовать до трех расширений
  • Статический анализ кода на соответствие стандартам
  • Выполнение модульных тестов
  • Формирование файлов поставки конфигурации и расширений
  1. По результатам проверок формируется журнал
  2. Этапы сборки выполняются для любого проекта и в любом окружении без изменения скриптов. Все настройки под конкретный проект и окружение выполняются в одном месте

Настройки

Для настройки запуска скриптов под конкретный проект и окружение используются переменные среды. Все пути к файлам указываются относительно корня репозитория. Основные переменные перечислены в файле .env.cmd.example :

  • _1CE_Version - версия платформы 1с, например 8.3.14.1993
  • _1CE_TestUnitDir - относительный путь к каталогу с фичами модульных тестов. Он обычно создается плагином к EDT ru.capralow.dt.unit.launcher в каталоге проекта расширения с модульными тестами
  • EDT_ProjectDir_Configuration - относительный путь к каталогу с проектом конфигурации
  • EDT_ProjectDir_Extension1 - относительный путь к каталогу с проектом расширения 1
  • Extension1 - имя расширения 1
  • EDT_ProjectDir_Extension2 - относительный путь к каталогу с проектом расширения 2
  • Extension2 - имя расширения 2
  • EDT_ProjectDir_Extension3 - относительный путь к каталогу с проектом расширения 3
  • Extension3 - имя расширения 3

Как подготовить набор скриптов к запуску

Для выполнения скриптов вам понадобится EDT и конфигуратор 1С. На компьютере должна быть установлена одна версия EDT. Для подготовки модульных тестов к выполнению можно использовать плагин к EDT ru.capralow.dt.unit.launcher . Для статического анализа кода нужна конфигурация "Автоматизированная проверка конфигураций". Проверена работа на 1C 8.3.14, EDT 1.15, АПК 1.2.5.16 и VA 1.2.027

В репозитории пропущены файлы сторонних приложений :

  • конфигурации "Автоматизированная проверка конфигураций"
  • обработки Vanessa Automation

Чтобы полноценно использовать скрипты, эти файлы нужно добавить. Поэтому:

  1. Клонируете себе этот репозиторий
  2. Выгружаете файл конфигурации "Автоматизированная проверка конфигураций" в 3dparty\automation-configuration-check.cf, чтобы работал статический анализ кода
  3. Выгружаете файл обработки Vanessa Automation в 3dparty\vanessa-automation-single.epf, чтобы работали модульные тесты.

Список скриптов

  • 3dparty\init-1ce.cmd - каталог исполняемых файлов платформы 1С добавляет в переменну среды PATH
  • build\create-db.cmd - из исходников создает ИБ 1С для строки соединения, указанной в переменной _1CE_TargetDBConnection. Если переменная пустая, то используется значение "File='.db'". Также в эту ИБ из исходников загружаются расширения с помощью вызова build\load-files-ext.cmd
  • build\1ce-acc-check.cmd - создает из файла конфигурации automation-configuration-check.cf в каталоге .acc ИБ "Автоматизированная проверка конфигураций" и запускает эту ИБ в режиме предприятия для проверки нашей конфигурации из каталога .db . Параметры запуска для проверки генерируются скриптом lint\gen-params.cmd
  • build\test.cmd - запускает модульные тесты для ИБ .db
  • build\edt-validate.cmd - проверка конфигурации с помощью EDT
  • build\check-modules.cmd - проверка синтаксиса кода с помощью конфигуратора
  • build\1ce-check-config.cmd - проверка конфигурации с помощью конфигуратора
  • build\dump-cfg.cmd - выгружает из ИБ .db конфигурацию в каталог, указанный в переменной DistributionDir, в файл 1cv8.cf. Если переменная пустая, то используется значение "dist". Также из ИБ выгружаются до трех расширений в файлы *.cfe с помощью вызова скрипта build\dump-ext.cmd. Расширения выгружатются, если заданы соответствующие переменные среды (Extension1 - Extension3)
  • build\dump-distr.cmd - выгружает из ИБ 1С .db файл поставки в каталог, указанный в переменной DistributionDir, в файл 1cv8.cf. Если переменная пустая, то используется значение "dist". Также из ИБ выгружаются до трех расширений в файлы *.cfe с помощью вызова скрипта build\dump-ext.cmd. Расширения выгружатются, если заданы соответствующие переменные среды (Extension1 - Extension3)
  • config\* - исключения из проверок. Из результатов проверок убираются строки в этих файлах
  • tools\* - вспомогательные скрипты

Загрузка исходников конфигурации и расширений в ИБ происходит в два этапа:

  1. Конвертация исходников в формат понятный конфигуратору с помощью EDT
  2. Загрузка сконвертированных исходников в пустую ИБ с помощью конфигуратора.

Пример использования на серверере сборок

Допустим есть вот такой репозиторий:

>dir /b
.env.cmd 
.env.cmd.example 
.gitattributes
.gitignore
3dparty
build
lint
README.md
test
TradeManagement
TradeManagement.FuncTests
TradeManagement.PatchCRM
TradeManagement.UnitTests

И при разработке используется платформа 1С версии 8.3.14.

Тогда настройки скриптов для использования будут выглядеть вот так:

>type .env.cmd
SET _1CE_Version=8.3.14.1993
SET _1CE_TestUnitDir=TradeManagement.UnitTests\features
SET EDT_ProjectDir_Configuration=TradeManagement
SET EDT_ProjectDir_Extension1=TradeManagement.FuncTest
SET Extension1=FuncTest
SET EDT_ProjectDir_Extension2=TradeManagement.PatchSSL
SET Extension2=PatchSSL
SET EDT_ProjectDir_Extension3=TradeManagement.UnitTests
SET Extension3=UnitTests

И инициализация версии 1С будет выполнятся вот так:

>3dparty/init-1ce.cmd

И сборка исходников в ИБ будет выполнятся вот так:

>build/create-db.cmd

И выполнение модульных тестов будет выполнятся вот так:

>build/test.cmd

И выполнение статического анализа кода с помощью АПК будет выполнятся вот так:

>build/1ce-acc-check.cmd

И выполнение платформенной проверки конфигурации будет выполнятся вот так:

>build/1ce-check-config.cmd

Использования на компьютере разработчика

На компьютере разработчика можно использовать вспомогательные скрипты запуска частых операций, расположенные в корне репозитория:

  • start-create-db
  • start-lint
  • start-test
  • start-dump-distr
  • start-check-config

Эти скрипты ожидают, что настройки запуска задаются в переменных среды с помощью скрипта .env.cmd

Пример использования на сервере сборок

Приведены примеры описания сборочных линий для Azure Pipelines. Линии используются в рамках процесса разработки по GitFlow:

  • azure-pipelines-release.yml - выполняет модульные тесты и формирует файлы поставки. Применяется для кода из веток master, release/* , hotfix/*.
  • azure-pipelines-pr.yml - выполняет статический анализ кода, синтаксический контроль кода и модульные тесты. Применяется при code review перед слиянием в ветки development и master.
  • azure-pipelines-development.yml - выполняет модульные тесты и выгружает конфигурацию и расширения в файлы. Применяется для кода из веток development.