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

29.05.18

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

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
(только для физ. лиц)
.gitlab-ci
.yml 1,13Kb
8 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Сборку будем производить на 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

См. также

EDT Групповая разработка (Git, хранилище) Программист 1С v8.3 Бесплатно (free)

Плагин, расширяющий функциональность EDT, предоставляя возможность работы с хранилищем конфигурации 1С без использования 1С:ГитКонвертер.

04.08.2025    1708    ZigRinat85    3    

28

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

Цель статьи – показать, что DevOps можно внедрять в проектах любого масштаба, даже с ограниченными ресурсами. Автор делится личным опытом: рассказывает, как начиналось внедрение, какие ресурсы потребовались, какие задачи удалось решить и как организован текущий рабочий процесс. Вы узнаете, как DevOps-практики помогают участникам разработки и чем DevOps-инженеры полезны для всех, кто участвует в создании решений. В статье подробно разбираются преимущества, которые дал переход на EDT, его влияние на процессы сборки, а также анализируется опыт внедрения Kubernetes – что это уже принесло и что принесет в будущем.

11.07.2025    1309    ptica    0    

6

Групповая разработка (Git, хранилище) EDT OneScript Программист 1С v8.3 Бесплатно (free)

В данной публикации рассматривается пример реализации скрипта, который автоматизирует получение ветки из GIT репозитория и обновление конфигурации, если разработка проекта ведется в EDT.

11.06.2025    2448    AlexF1    4    

7

EDT Программист Бесплатно (free)

Статья поможет разработчикам 1С правильно настроить масштабирование интерфейса EDT для комфортной работы на мониторах с высоким разрешением.

03.06.2025    1719    PetrovAnton    5    

6

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) EDT Программист 1С v8.3 Бесплатно (free)

В процессе использования 1С:EDT и репозитория Git для обновлений релизов доработанных конфигураций появилась необходимость в регулярной загрузке конфигураций от вендора 1С в Git-репозиторий. Описанное в статье решение позволяет автоматизировать эту операцию и может быть полезным специалистам, занимающимися обновлениями с использованием 1C:EDT+Git

21.05.2025    3741    vladimir_iclsoft    3    

20

EDT Программист Бесплатно (free)

Новый механизм отладки в 1С: Предприятие значительно упрощает процесс отладки приложений на пустой базе данных. Он позволяет разработчикам подключаться к базе данных, предоставленной пользователем или бизнесом, и отлаживать конфигурацию без необходимости иметь все данные у себя. Этот механизм особенно полезен для отладки внешней обработки обмена данными в Enterprise Data, где используется множество баз источников данных. Настройка сервера отладки и подключение к нему через EDT позволяет разработчикам эффективно перехватывать сеансы и отлаживать базы данных, которые не находятся в их проекте.

20.09.2024    10505    kraspila    26    

3

EDT Групповая разработка (Git, хранилище) Программист 1С v8.3 Бесплатно (free)

Заказчики любят EDT+Git за прозрачность и контроль качества. А у разработчиков есть две основные причины не любить EDT – это тормоза и глюки. Расскажем о том, что нужно учесть команде при переходе на EDT+Git.

14.08.2024    14625    lekot    35    

8

EDT Программист Бесплатно (free)

О том, как организовать поддержку конфигурации поставщика в существующем проекте EDT. У Вас есть конфигурация на EDT и в нее надо внедрить типовую конфигурацию? Статья об этом. Постарался расписать все по шагам, чтобы вы потратили меньше времени и не наступали на те же грабли, что и я.

18.01.2024    5807    AntonChausov    26    

44
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Vanch90 30.05.18 07:29 Сейчас в теме
зачем?
d4rkmesa; Vasvas05; gradi; o4karek; Lyolik; +5 2 Ответить
2. unmensch 25 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 298 31.05.18 09:37 Сейчас в теме
(4) Спасибо, приятно слышать.
6. Ivan_0110 13.07.18 10:02 Сейчас в теме
Да, 1С делает маленькие шажки в сторону нормального программирования. Спасибо за статью!
7. charivnick 46 13.07.18 12:44 Сейчас в теме
а как запускать этот скрипт?
Можно подробно со скриншотами написать?
8. charivnick 46 13.07.18 12:47 Сейчас в теме
где вы взяли файл config.toml?
Вы о чем? Вы точно не перепутали статью по 1C Enterprise Development Tools?
9. fenixnow 298 13.07.18 15:55 Сейчас в теме
(8) Инструкции по настройке GitLab-Runner вы может получить по ссылке установка настройка

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

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

PS. Я не заставляю искать вас плюшки два вашего стека инструментов.
11. charivnick 46 13.07.18 16:48 Сейчас в теме
может обычный Powershell скрипт написать, который будет дергать локальный кэш git, брать оттуда xml и через ring edt export выгружать в 1с?
21. a.ivanov 07.09.19 10:19 Сейчас в теме
(11) это и есть обычные скрипты которые все это делают. Только запускаются они не руками, а по событиям.
22. fenixnow 298 07.09.19 10:21 Сейчас в теме
(21) Хороший комментарий спустя год
12. charivnick 46 13.07.18 16:49 Сейчас в теме
13. charivnick 46 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 298 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 46 20.07.18 16:30 Сейчас в теме
В общем недоработка получается самого EDT, все плюшки работы с внешними обработками, а именно: быстрая правка кода и ее последующий запуск,
сходят на минус. Пока отправится обработка в облако, пока придет оттуда скомпилированная, а потом еще нужно конфигуратор 1с-кий запустить, в нем отладку и саму 1ску.
18. charivnick 46 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 391 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 298 05.12.19 17:41 Сейчас в теме
(24) указывайте просто shell. Не указывайте что исполнять будет cmd. Это уже устаревший метод выполнения сценариев. Используйте powershell. Он намного веселее и на нем проще писать команды для выполнения запуска 1с
user1411559; check2; +2 Ответить
26. check2 391 05.12.19 18:05 Сейчас в теме
(25) Андрей, спасибо огромное, поставил в executor = "shell", а shell = "cmd" убрал совсем. процесс пошёл.
27. vsbronnikov 85 27.12.19 12:47 Сейчас в теме
Небольшой комментарий:

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

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