Как можно настроить сборку обработок и отчетов 1С с использованием self-hosted GitLab CI/CD?

Вопрос следующий: 

На Linux-сервере установлен Docker, на котором развернут self-hosted GitLab, куда выгружаются отчеты и обработки в разобранном виде через опцию "Выгрузить в файлы...". 

Можно ли настроить процесс сборки отчетов и обработок в форматах epf и erf с автоматической публикацией в релизы после сборки, используя систему CI/CD? 

Может быть, у кого-то уже была подобная потребность, и они реализовывали что-то аналогичное?
  • 14 марта 2025 г. 5:54
Ответы на вопрос 1
Да, вы можете настроить процесс сборки обработок и отчетов 1С с использованием self-hosted GitLab CI/CD. Процесс может включать следующие шаги:

1. **Структура проекта**:
   Убедитесь, что ваш проект имеет структуру, где исходные файлы обработок и отчетов находятся в репозитории GitLab в отдельной директории. Это облегчит настройку CI/CD.

2. **Создание `.gitlab-ci.yml`**:
   Разработайте файл конфигурации GitLab CI/CD (`.gitlab-ci.yml`), в котором опишите этапы сборки и публикации. Пример файла может выглядеть следующим образом:

   ```yaml
   stages:
     - build
     - release

   build:
     stage: build
     script:
       - echo "Starting build of reports and processing tasks"
       - # Установите необходимые зависимости и инструменты
       - # Например, у вас может быть скрипт для сборки
       - ./build_script.sh  # Ваш скрипт для сборки .epf и .erf файлов
     artifacts:
       paths:
         - output/*.epf
         - output/*.erf

   release:
     stage: release
     script:
       - echo "Creating release..."
       - # Используйте GitLab API для создания релиза
       - curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "name=Release $CI_COMMIT_TAG&tag_name=$CI_COMMIT_TAG&description=Automated release" "https://gitlab.example.com/api/v4/projects/$CI_PROJECT_ID/releases"
       - echo "Release created successfully"
     only:
       - tags
   ```

   Заметьте, что в данном примере сборка выполняется в первом этапе, а публикация происходит только при наличии тегов (это значит, что вы хотите делать релиз при создании нового тега).

3. **Скрипт сборки**:
   Вам нужно реализовать скрипт `build_script.sh`, который, используя инструменты, такие как `1C:Enterprise`, собирает ваши обработку (.epf) и отчет (.erf) из исходных файлов. Вы можете использовать командную строку для компиляции, если у вас установлен `1C:Enterprise`.

4. **Создание релиза**:
   Когда сборка завершена, вы можете использовать GitLab API, чтобы создать релиз и прикрепить скомпилированные файлы (.epf и .erf) к релизу. В примере выше вы можете использовать `curl` для выполнения POST-запроса к API GitLab.

5. **Тестирование**:
   Обязательно протестируйте ваш процесс на тестовом репозитории перед тем, как переносить его на боевой проект. Убедитесь, что сборка проходит успешно и файлы релизов создаются корректно.

6. **Документация и поддержка**:
   Ознакомьтесь с документацией GitLab CI/CD и API для более глубокого понимания возможностей настройки и взаимодействия с системой.

В итоге, с помощью self-hosted GitLab CI/CD, Docker и скриптов bash вы сможете автоматизировать процесс сборки и публикации отчетов и обработок 1С, что значительно упростит вашу работу.
Похожие вопросы