Сборка приложения, разработанного на EDT, с помощью gitlab-ci

29.05.18

Разработка - EDT

В статье описан пример сборки .cf файла при помощи штатных средств EDT, Конфигуратор.

Скачать файлы

Наименование Файл Версия Размер
.gitlab-ci
.yml 1,13Kb
6
.yml 1,13Kb 6 Скачать

Сборку будем производить на Windows машине с установленным GitLab-Runner, настроенным на выполнение команд CMD, а также установленной EDT.

Для начала нужно добавить строку в файл config.toml  

shell = "cmd"

Сам файл .gitlab-ci.yml имеет следующее содержание

variables:
#    CI_DEBUG_TRACE: "true" # Для целей отладки
    PLATFORM_1C: 'C:/Program Files (x86)\1cv8\8.3.10.2699\bin\1cv8.exe' # Используемая платформа для получения .CF файла. Обратите внимание на одинарные кавычки, в двойных кавычках переменная определяется неверно.
    BASE_1C: 'testbase' # пустая база 1С для целей загрузки/выгрузки нашего cf файла

ConvertEDT_XML: # Конвертация проекта из формата EDT в формат XML
  stage: build
  script:
   - md config
   - ring edt workspace export --project %CI_PROJECT_DIR%/ --configuration-files %CI_PROJECT_DIR%/config --workspace-location %CI_PROJECT_DIR%/workspace # Используем штатные средства утилиты ring идущей в составе поставки EDT
  only:
    - master

CreateBase: # Создаем пустую базу
  stage: build
  variables:
    GIT_STRATEGY: none
  script:
    - start "" /wait "%PLATFORM_1C%" CREATEINFOBASE File="%CI_PROJECT_DIR%/%BASE_1C%"
  only:
    - master
  
LoadConfig: # Загружаем в пустую базу конфигурацию из файлов
  stage: build
  variables:
    GIT_STRATEGY: none
  script:
    - start "" /wait "%PLATFORM_1C%" DESIGNER /F %CI_PROJECT_DIR%/%BASE_1C% /LoadConfigFromFiles %CI_PROJECT_DIR%/config /UpdateDBCfg
  only:
    - master

DumpConfig:
  stage: build
  variables:
    GIT_STRATEGY: none
  script:
    - md build # Создаем пустую папку для выгрузки в нее конфигурации
    - start "" /wait "%PLATFORM_1C%" DESIGNER /F %CI_PROJECT_DIR%/%BASE_1C% /DumpCfg %CI_PROJECT_DIR%/build/%CI_PIPELINE_ID%.cf # Выгружаем конфигурацию в файл с именем номера запущенного конвеера. 
  artifacts:
    name: "%CI_COMMIT_REF_NAME%"
    paths:
    - build/*.cf # Отправляем файл конфигурации архивированный .zip в наш проект на Gitlab 
    expire_in: 7 day # Указываем срок жизни нашего архива
  only:
    - master  

В итоге у нас получилась автоматическая сборка проекта в виде .cf файла с конфигурацией

К статье приложен файл настройки без комментариев.

EDT gitlab

См. также

Командная разработка облачных продуктов, используя 1С:EDT

DevOps и автоматизация разработки EDT Бесплатно (free)

Даже в рамках одной компании подходы к организации командной разработки могут отличаться: методикой работы с ветками, организацией тестовых и разработческих контуров, параллельным использованием хранилищ или полным переходом на Git. Расскажем, какие варианты распределения серверных стендов и организации CI/CD выбрали для своих команд тимлиды двух отделов, и как у них происходило внедрение 1С:EDT.

05.09.2023    919    WhatIsLoveMakoveev    0    

4

Доработка типовой конфигурации в 1С:EDT. Разработка, тестирование, слияние, выпуск

DevOps и автоматизация разработки EDT Бесплатно (free)

Использование EDT дает преимущества даже для тех, кто до сих пор остается в конфигураторе. Достаточно настроить разбор основного хранилища разработки в GitConverter и автоматизировать CI на GitLab с помощью скриптов на 1С:Исполнителе. Статья о том, как задействовать для кодовой базы проекта валидацию EDT, используя встроенный механизм GitLab Code Quality, и генерировать дымовые тесты для Vanessa Automation.

23.08.2023    3665    doublesun    25    

32

EDT и полный стек CI/CD

EDT Тестирование QA Бесплатно (free)

EDT позволяет не только полноценно использовать гитфлоу при разработке – изолировать код по веткам в рамках задач и анализировать мерж-реквесты, но и нативно запускать тесты, а также видеть покрытие кода прямо в редакторе. Расскажем о том, как получить от 1С-разработки в EDT максимум пользы и автоматизировать сборку поставки из EDT с помощью Jenkins.

19.07.2023    3096    yukon    12    

35

EDT. Не активируется проектный контекст

EDT Россия Бесплатно (free)

Проблема не активирующегося контекста проекта в EDT и вариант ее обхода.

12.12.2022    1794    AntonChausov    2    

5

Куда привели 2 года работы с EDT

EDT Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

EDT позволяет работать с кодовой базой конфигураций напрямую – использовать GIT, помещать изменения в ветки и запускать тесты до попадания в основную кодовую базу, чтобы добиться «зеленых ночных сборок» для конфигурации. Разработчик из компании «Первый БИТ» Валерий Дыков на конференции Infostart Event 2021 Post Apocalypse рассказал, как безболезненно перейти на EDT и получить преимущества работы с GIT, продолжая работать в конфигураторе.

01.09.2022    7994    Begemoth80    21    

38

Ручная выгрузка и загрузка конфигурации

EDT Механизмы платформы 1С Платформа 1С v8.3 Россия Абонемент ($m)

Внешняя обработка позволяет выполнять выборочную выгрузку и загрузку объектов конфигурации 1С.

1 стартмани

26.08.2022    4044    10    user1041830    4    

9

Управление сборкой. Расширение для конфигурации СППР

DevOps и автоматизация разработки Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Подсистема «Управление сборкой GLI» предназначена для динамического формирования сборочных линий Gitlab и отслеживания процесса доработок систем на базе1С:Предприятия Позволяет упростить выпуск новых релизов системы, подготовить описание доработок системы. Интегрируется с GitLab API по событиям Push, Merge-request, Pipeline. Уведомляет пользователей о результатах сборки/тестирования сборочных конвейеров через СВ, либо при её недоступности или отсутствию по E-Mail. Поможет при отправке исправлений ошибок в общую базу тестирования, сформирует запросы на слияние в ветку версии только по протестированному и подтверждённому функционалу. Подсистема рассчитана исключительно на клиент - серверную архитектуру тестовых ИБ. Поддерживаемая версии СППР 2.0.4.15, платформа не ниже 8.3.17.1549, 2.0.7.3 / не ниже 8.3.21.1664, начиная с релиза 1.0.4.30 требуется платформа не ниже 8.3.23 рекомендуемый релиз 8.3.23.1997

7000 руб.

26.08.2022    10531    6    5    

30

Быстрое обновление базы 1С из XML-файлов конфигурации (EDT-GIT)

DevOps и автоматизация разработки EDT Обновление 1С Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Быстрое обновление конфигурации и базы данных 1С, вместо долгого обновления из EDT (1C:Enterprise Development Tools) при использовании хранилища GIT. Непосредственное обновлении базы на сервере баз данных (минуя сервер 1С) из XML-файлов конфигурации при помощи утилиты автономного сервера 1С - ibcmd.

1 стартмани

13.07.2022    12075    8    Bitnikov    19    

52
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Vanch90 30.05.18 07:29 Сейчас в теме
зачем?
d4rkmesa; Vasvas05; gradi; o4karek; Lyolik; +5 2 Ответить
2. unmensch 24 30.05.18 09:11 Сейчас в теме
(1) Чтобы руками не делать. Очевидно же..
sleemp; strizhhh; t.v.s.; +3 Ответить
3. пользователь 31.05.18 05:17
Сообщение было скрыто модератором.
...
4. Merc 40 31.05.18 07:05 Сейчас в теме
5. fenixnow 267 31.05.18 09:37 Сейчас в теме
(4) Спасибо, приятно слышать.
6. Ivan_0110 13.07.18 10:02 Сейчас в теме
Да, 1С делает маленькие шажки в сторону нормального программирования. Спасибо за статью!
7. charivnick 45 13.07.18 12:44 Сейчас в теме
а как запускать этот скрипт?
Можно подробно со скриншотами написать?
8. charivnick 45 13.07.18 12:47 Сейчас в теме
где вы взяли файл config.toml?
Вы о чем? Вы точно не перепутали статью по 1C Enterprise Development Tools?
9. fenixnow 267 13.07.18 15:55 Сейчас в теме
(8) Инструкции по настройке GitLab-Runner вы может получить по ссылке установка настройка

Для запуска скрипта вам потребуется связать проект EDT c проектом на gitlab.com, создать там конвейер, связать в вашим рунером.

Тема настройки Gitlab довольно обширная, лучше с ней ознакомится в сети интернет.
10. charivnick 45 13.07.18 16:47 Сейчас в теме
а если у меня проект связан с гитхабом?
15. fenixnow 267 13.07.18 21:42 Сейчас в теме
(10) Почитайте внимательно заголовок статьи, в нем описаны инструменты используемые для сборки .cf
Увы, github и powershell туда не входят.
Не спорю, что для кого то локальный скрипт на powershell будет проще. Буду рад увидеть в каталоге инфостата и такое решение. Уверен, что оно также будет полезно.

PS. Я не заставляю искать вас плюшки два вашего стека инструментов.
11. charivnick 45 13.07.18 16:48 Сейчас в теме
может обычный Powershell скрипт написать, который будет дергать локальный кэш git, брать оттуда xml и через ring edt export выгружать в 1с?
21. a.ivanov 07.09.19 10:19 Сейчас в теме
(11) это и есть обычные скрипты которые все это делают. Только запускаются они не руками, а по событиям.
22. fenixnow 267 07.09.19 10:21 Сейчас в теме
(21) Хороший комментарий спустя год
12. charivnick 45 13.07.18 16:49 Сейчас в теме
13. charivnick 45 13.07.18 16:49 Сейчас в теме
14. lustin 13.07.18 20:51 Сейчас в теме
всё круто - кроме одного


PLATFORM_1C: 'C:/Program Files (x86)\1cv8\8.3.10.2699\bin\1cv8.exe' # Используемая платформа для получения .CF файла.


может все таки через oscript.io ?


vrunner help unload
vanessa-runner v1.3.0
unload - Выгружает файл конфигурации из ИБ

Параметры:
<cfpath> - Путь к результату - выгружаемому файлу конфигурации (*.cf)
--ibconnection - Строка подключения к БД (/FfilePath или /SserverPath)
Например, для файловых баз --ibconnection /FC:\base1 или --ibconnection /F./base1 или --ibconnection /Fbase1
Или для серверных баз --ibconnection /Sservername\basename
--db-user - Пользователь БД
--db-pwd - Пароль БД
--v8version - Версия платформы
Показать


Установить на машине:

* http://oscript.io/
* поставить пакет opm install vanessa-runner
* и дальше уже работать ;-)
dock; vlad.frost; artbear; +3 3 Ответить
16. fenixnow 267 13.07.18 21:54 Сейчас в теме
(14) Я думал о переменной platform_1c но решил оставить ее именно в таком виде для статьи. Тогда мне хотелось услышать дискуссию о правильности применения именно такого параметра 😀

Против onescript не имею ничего плохого, но я описал именно связку типового функционала edt и типового функционала gitlab. Сборка .cf происходит на удаленной машине, туда нужно как то доставить файлы конфигурации.

Да и Ванесса как я помню не умеет работать с типом хранения файлов конфигурации edt. Возможно ошибаюсь? 😉
19. vlad.frost 186 16.10.18 12:41 Сейчас в теме
(16)
Да и Ванесса как я помню не умеет работать с типом хранения файлов конфигурации edt. Возможно ошибаюсь?


Кое-что vanessa-runner уже умеет с EDT https://github.com/silverbulleters/vanessa-runner/blob/develop/src/Классы/КомандаПроверкаПроектаEDT.os
17. charivnick 45 20.07.18 16:30 Сейчас в теме
В общем недоработка получается самого EDT, все плюшки работы с внешними обработками, а именно: быстрая правка кода и ее последующий запуск,
сходят на минус. Пока отправится обработка в облако, пока придет оттуда скомпилированная, а потом еще нужно конфигуратор 1с-кий запустить, в нем отладку и саму 1ску.
18. charivnick 45 20.07.18 16:32 Сейчас в теме
быстрее все сделать в конфигураторе, в ставить в конфигурацию тестовой базы и оттуда слить на гитхаб.
20. a.ivanov 07.09.19 10:17 Сейчас в теме
Годно. Но я все через vanessa-runner сделал. Удобнее. Плюс тестовую базу чтобы обновлять, надо сессии убивать.
23. seregasame 26.09.19 09:11 Сейчас в теме
ERROR: Job failed: execution took longer than 1h0m0s seconds
и так все шаги, с чем это связано? куда копать?
24. check2 353 05.12.19 17:32 Сейчас в теме
Андрей, здравствуйте! Подскажите, пожалуйста при регистрации GitLab-runner что указывали в "Enter the Runner executor:"
Я указал docker, но по всей видимости это не то что нужно, т.к.
Бегунок вроде как зарегистрировался в гитлабе, но исполнять команды он не хочет, с гитлаба приходят уведомления с ошибкой:
ERROR: Preparation failed: error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.25/info: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running. (executor_docker.go:980:0s)
25. fenixnow 267 05.12.19 17:41 Сейчас в теме
(24) указывайте просто shell. Не указывайте что исполнять будет cmd. Это уже устаревший метод выполнения сценариев. Используйте powershell. Он намного веселее и на нем проще писать команды для выполнения запуска 1с
user1411559; check2; +2 Ответить
26. check2 353 05.12.19 18:05 Сейчас в теме
(25) Андрей, спасибо огромное, поставил в executor = "shell", а shell = "cmd" убрал совсем. процесс пошёл.
27. vsbronnikov 80 27.12.19 12:47 Сейчас в теме
Небольшой комментарий:

Из документации GitLab (https://docs.gitlab.com/ee/ci/yaml/#stages) задачи одной стадии выполняются параллельно.
В вашем случае, если раннеров будет больше одного, на стадии Build каждая из задач (ConvertEDT_XML, CreateBase, LoadConfig, DumpConfig) будет запущена на произвольных раннерах параллельно. И задачи не смогут воспользоваться результатами работы предыдущих задач.

Получается эта конфигурация будет работать только на одном раннере.
Оставьте свое сообщение