Сборку будем производить на 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 файла с конфигурацией
К статье приложен файл настройки без комментариев.