Сборка приложения, разработанного на 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

См. также

С конфигуратора на EDT. Привычки, которые придется поменять

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

Решил перейти на EDT, чтобы повысить эффективность разработки? А теперь приостановись и выдохни! Я расскажу сейчас о том, из-за чего многие новички в EDT (будучи матёрыми кодерами в конфигураторе) воспринимают встречу с новшествами так, будто их с велосипеда пересадили за штурвал Боинга.

16.09.2021    19813    stas_ganiev    21    

108

1C: EDT: фиксим баги доработанной и устаревшей конфигурации УТ

EDT Платформа 1С v8.3 8.3.14 1С:Управление торговлей 11 Россия Управленческий учет Бесплатно (free)

В этом году у меня появилась возможность использовать 1С: EDT весь рабочий день. В работе конфигурация УТ 11.1, прилично доработанная. Целиком перейти на актуальную конфигурацию УТ 11.4 проблематично, поэтому переходим кусочками в ходе текущих работ.

13.08.2021    2853    pa240775    4    

5

Как сделать плагин для 1С:EDT для начинающего Java+1C разработчика. Часть 4

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

Сборка репозитория P2 на основе исходников плагина 1С:EDT для поставки пользователям.

27.12.2020    1676    marmyshev    0    

6

Как сделать плагин для 1С:EDT для начинающего Java+1C разработчика. Часть 3

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

Описание процесса создания UI-плагина для EDT с Quick-Fix по проверке.

08.11.2020    1949    marmyshev    0    

8

Как сделать плагин для 1С:EDT для начинающего Java+1C разработчика. Часть 2

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

Описание процесса создания плагина для EDT по валидации с квикфиксом.

07.11.2020    3617    marmyshev    1    

24

Как сделать плагин для 1С:EDT для начинающего Java+1C разработчика. Часть 1

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

Введение в разработку плагинов для 1С:EDT. Цель: показать, что плагины для 1С:EDT можно делать быстро и легко.

17.10.2020    8028    marmyshev    25    

71

1С:EDT. Куда пинать, чтобы полетело?

EDT Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 Россия Бесплатно (free)

Работал в 1С Конфигуратор и решил перейти на 1С EDT. Не получилось сразу. Потребовалась модификация компьютера.

19.08.2020    10854    pa240775    39    

17

Unit-тесты с помощью 1C:Enterprise Development Tools

EDT Платформа 1С v8.3 Бесплатно (free)

Концепция TDD требует перестроения подходов к разработке и наличия инструментов для запуска Unit-тестов. Про написание плагина для EDT, который содержит в себе инструменты написания, анализа результатов и запуска Unit-тестов для конфигураций 1С на конференции Infostart Event 2019 Inception рассказал ведущий специалист по внедрению компании 1С-Рарус Александр Капралов.

11.06.2020    11480    doublesun    11    

68
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 269 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 269 13.07.18 15:55 Сейчас в теме
(8) Инструкции по настройке GitLab-Runner вы может получить по ссылке установка настройка

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

Тема настройки Gitlab довольно обширная, лучше с ней ознакомится в сети интернет.
10. charivnick 45 13.07.18 16:47 Сейчас в теме
а если у меня проект связан с гитхабом?
15. fenixnow 269 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 269 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 269 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 357 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 269 05.12.19 17:41 Сейчас в теме
(24) указывайте просто shell. Не указывайте что исполнять будет cmd. Это уже устаревший метод выполнения сценариев. Используйте powershell. Он намного веселее и на нем проще писать команды для выполнения запуска 1с
user1411559; check2; +2 Ответить
26. check2 357 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) будет запущена на произвольных раннерах параллельно. И задачи не смогут воспользоваться результатами работы предыдущих задач.

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