1
0
mirror of https://github.com/firstBitMarksistskaya/jenkins-lib.git synced 2024-12-13 11:27:08 +02:00
Jenkins shared library для 1С:Предприятие 8
Go to file
2021-06-01 17:58:16 +03:00
gradle/wrapper Сборка градлем 2020-03-25 17:27:29 +03:00
jenkinsResources Переезд на градль-рельсы с тестами и объектами 2020-03-26 17:04:42 +03:00
resources Раздельная конфигурация для lfsUri и lfsRepoUri 2020-10-29 14:01:48 +03:00
src Новая временная VAS с тихой установкой Vanessa-Ext 2021-06-01 17:58:16 +03:00
test BDD шаг 2020-10-21 12:27:51 +03:00
vars Откат использования scm 2020-11-11 10:10:01 +03:00
.gitattributes Наметки по jenkins-lib 2020-03-17 15:38:26 +03:00
.gitignore Переезд на градль-рельсы с тестами и объектами 2020-03-26 17:04:42 +03:00
build.gradle.kts Переопределение параметров git lfs 2020-10-26 17:54:59 +03:00
gradlew +x 2020-03-25 17:28:09 +03:00
gradlew.bat Сборка градлем 2020-03-25 17:27:29 +03:00
LICENSE.md Первый релиз 2020-04-20 11:28:58 +03:00
README.md Update README.md 2020-05-04 13:14:49 +03:00
settings.gradle.kts Сборка градлем 2020-03-25 17:27:29 +03:00

Jenkins shared library for 1C:Enterprise 8

Цель

Создание библиотеки (или плагина) для Jenkins, позволяющей:

  • максимально упростить написание Jenkinsfile для процесса CI в условиях платформы 1С:Предприятие 8
  • иметь схожий и контролируемый пайплайн для всех проектов
  • дать пользователю в руки простой декларативный конфигурационный файл, вместо требования описывать всю сложную логику по работе с 1С

Общие положения

  • в активной разработке и поиске "своего пути" по разработке библиотеки;
  • формат конфигурационного файла не стабилизирован;
  • обратная совместимость пока не гарантируется, внимательно читайте changelog;
  • количество stage будет со временем увеличиваться;
  • использовать на свой страх и риск;
  • любая помощь приветствуется.

Ограничения

  1. Для шага подготовки требуется любой агент с меткой agent.
  2. Для запуска шага анализа SonarQube требуется агент с меткой sonar.
  3. Для запуска шага валидации EDT требуется агент с меткой edt (для собственно валидации) и агент с меткой oscript (для трансформации результатов с помощью библиотеки stebi).
  4. Для запуска шагов, работающих с 1С (подготовка, синтаксический контроль и т.д.) требуется агент с меткой, совпадающей со значением в поле v8version файла конфигурации.
  5. В качестве ИБ используется файловая база, создаваемая в ./build/ib, без данных авторизации. Переопределение "в следующих сериях".
  6. Stage "Дымовые тесты" пока пустой.
  7. Запуск vrunner на текущий момент происходит из локального каталога oscript_modules. Предполагается наличие в корне репозитория файла packagedef, в котором бы была указана зависимость от vanessa-runner

Возможности

  1. Все шаги можно запустить на базе docker-образов из форка репозитория onec-docker. См. памятку по слоям и последовательности сборки
  2. Трансформация кода из формата конфигуратора в формат EDT (только если включен шаг edtValidate).
  3. Подготовка информационной базы по версии из хранилища конфигурации.
  4. Запуск синтаксического контроля средствами конфигуратора и сохранение результатов в виде отчета jUnit.
  5. Запуск валидации проекта средствами EDT и конвертация отчета в формате generic issues.
  6. Запуск статического анализа для SonarQube

Подключение

Инструкция по подключению библиотеки: https://jenkins.io/doc/book/pipeline/shared-libraries/#using-libraries

Примеры Jenkinsfile

Если в настройках подключения shared-library включен флаг "Load implicitly":

pipeline1C()

В обратном случае:

@Library('jenkins-lib') _

pipeline1C()

Да, вот и весь пайплайн. Конфигурирование через json.

Внешний вид пайплайна в интерфейсе Blue Ocean

image

Конфигурирование

По умолчанию применяется файл конфигурации из ресурсов библиотеки

Поверх него накладывается конфигурация из файла jobConfiguration.json в корне проекта, если он присутствует.

Пример переопределения:

  • указывается точная версия платформы (и соответственно метка агента, см. ограничения)
  • идентификаторы credentials для пути к хранилищу и к паре логин/пароль для авторизации в хранилище (необходимы, если применяются шаги, работающие с информационной базой)
  • включаются шаги запуска статического анализа SonarQube, валидации средствами EDT и синтаксического контроля
{
    "$schema": "https://raw.githubusercontent.com/firstBitSemenovskaya/jenkins-lib/master/resources/schema.json",
    "v8version": "8.3.14.1976",
    "secrets": {
        "storagePath": "f7b21c02-711a-4883-81c5-d429454e3f8b",
        "storage" : "c1fc5f33-67d4-493f-a2a4-97d3040e4b8c"
    },
    "stages": {
        "sonarqube": true,
        "edtValidation": true,
        "syntaxCheck": true
    }
}