Skip to content

silverbulleters/vanessa-usher

Repository files navigation

drawing Курс "Имплементация инженерных практик" по ссылке

Vanessa-Usher: библиотека автоматизации сборочного цикла для 1С:Предприятие

Библиотека предназначена для быстрого создания сборочных линий CI/CD для прикладных решений на платформе 1С:Предприятие.

Возможности:

  • Экспорт истории хранилища 1С в Git
  • Проверочный контур, состоящий из шагов:
    • Подготовка окружения
    • Синтаксическая проверка платформой 1С
    • Статический анализ проекта в SonarQube
    • Дымовое тестирование
    • Модульное тестирование
    • Поведенческое тестирование
    • Публикация отчетов Allure и jUnit
    • Сборка поставки конфигурации
    • Отправка уведомлений
      • На электронную почту
      • В Slack

Состав библиотеки

  • Каталог vars - основной каталог с методами библиотеки.
  • Каталог examples/template - шаблон нового проекта.

Быстрый старт

Подключение

Подключить библиотеку по инструкции Using libraries. В поле Name установить значение usher2.

Jekinsfiles

Рассмотрим примеры из шаблона проекта examples/template.

Запуск экспорта истории хранилища 1С (Jenkinsfile_gitsync):

@Library('usher2') _

repoSyncPipeline('tools/pipeline/gitsync.json')

image-20210810132241700

Запуск проверочного контура (Jenkinsfile):

@Library('usher2') _

buildPipeline('tools/pipeline/ci.json')

image-20210810132219338

Настройка конфигурации

Для каждого pipeline нужно создать конфигурационный файл.

Пример запуска "Экспорт истории хранилища 1С":

{
  "$schema": "https://gitlab.silverbulleters.org/products/avtoinfrastruktura/vanessa-usher2/-/raw/develop/resources/schema.json",
  "agent": "gitsync",
  "v8Version": "8.3",
  "notification": {
    "mode": "EMAIL",
    "email": "test@mail.ru"
  },
  "defaultInfobase": {
    "connectionString": "/F./build/ib",
    "auth": ""
  },
  "stages": {
    "gitsync": true
  }
}

Пример запуска проверочного контура:

{
  "agent": "slave",
  "v8Version": "8.3.15",
  "notification": {
    "mode": "EMAIL",
    "email": "test@mail.ru"
  },
  "defaultInfobase": {
    "connectionString": "/F./build/ib"
  },
  "stages": {
    "prepareBase": true,
    "syntaxCheck": true,
    "sonarqube": true,
    "smoke": true,
    "tdd": true,
    "bdd": true,
    "build": true
  },
  "prepareBase": {
    "sourcePath": "./src/cf"
  },
  "sonarqube": {
    "agent": "sonarqube",
    "toolId": "sonar-scanner",
    "serverId": "SonarQube",
    "debug": false
  }
}

Параметры по умолчанию можно изучить здесь example.json.

Как стать контрибьютором

  • Сделать Fork проекта
  • Клонировать Fork на свою машину
  • Создать Issue на странице проекта (или взять в работу ранее созданный)
  • Внести необходимые изменения в Fork
  • Сделать коммит, указав в начале #<НомерIssue>
  • Создать PullRequest и подождать его принятия
  • Profit!

Благодарности участникам разработки

@otymko @M0okRu

Лицензия

Лицензию читать здесь LICENSE.md