Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Поддержка Docker #27

Open
proDOOMman opened this issue Jun 4, 2020 · 10 comments
Open

Поддержка Docker #27

proDOOMman opened this issue Jun 4, 2020 · 10 comments

Comments

@proDOOMman
Copy link
Collaborator

No description provided.

@KrapivinAndrey
Copy link

О какой поддержке идет речь? Сейчас занят подготовкой докер образа для k8s.

@proDOOMman
Copy link
Collaborator Author

Как минимум - написать dockerfile для сборки контейнера.

@nixel2007
Copy link
Member

nixel2007 commented Jun 23, 2021

Готов потянуть задачу в рамках https://github.com/firstBitSemenovskaya/onec-docker

@asosnoviy
Copy link
Member

Готов понятуть задачу в рамках https://github.com/firstBitSemenovskaya/onec-docker

Позови как соберешься, интересно позырить

@proDOOMman
Copy link
Collaborator Author

Готов потянуть задачу в рамках https://github.com/firstBitSemenovskaya/onec-docker

Я только за. Засунуть JRE и c41c в контейнер то не сложно, а вот сделать это красиво у меня не получилось. Интересно что у тебя выйдет.

@nixel2007
Copy link
Member

nixel2007 commented Jun 24, 2021

Как ты вообще видишь решение этой задачи? Coverage41c должен быть в том же контейнере, что и 1с/агент ci-сервера, чтобы управлять можно было изнутри, или как отдельный сервис?

P. S. Базы файловые

@proDOOMman
Copy link
Collaborator Author

Проще конечно поместить его в тот же самый контейнер (я так и сделал), но это слабовато вяжется с идеей докера - выносить отдельные части системы в отдельные контейнеры. Но если вынести c41c в другой контейнер - действительно непонятно как им управлять. Разве что пробросить сокет управления в контейнер с "1с/агентом ci-сервера" и написать обвязку для отправки команд, не требующую явы. Либо вообще добавить rest-api и управлять через него.
В общем я за отдельный контейнер

@KrivickyA
Copy link

Мне кстати тоже интересен вариант запуска в отдельном контейнере, т.к. сейчас у меня тесты проходят в таком режиме:

  1. Тесты запускаются через CI локального сервера GitLab. Раннеры крутятся в кластере кубернетес.
  2. На выделенном сервере 1С разворачивается серверная база (на сервере подключена отладка по http)
  3. После подготовки базы запускается дочерний pipeline который прогоняет несколько групп тестов, разбитых на логические блоки. Для запуска каждой группы по сути стартует свой job в своем отдельном контейнере и по завершению тестов результаты каждого блока возвращаются в гитлаб и дополнительно загружаются на локальный сервер allure.

И в такой схеме не совсем понятно как можно использовать Coverage41C.
Вариант 1:
Пока создается база, перед запуском тестов запускать отдельный контейнер с Coverage41C. Перед началом тестов каким то образом отправлять в этот контейнер команду "Начать запись покрытия для базы вот такой то". После завершения всех шагов теста отправлять команду "Завершить запись" и в артефакты или куда нужно закидывать итоговый результат.

Вариант 2:
Запускать запись данных покрытия при выполнении каждого этапа тестов. Собирать где-то промежуточные данные. И после завершения всех шагов тестов выполнить агрегацию всех промежуточных результатов и один файл и отдавать сводный результат куда нужно, в гитлаб, сонар и т.д...

Для первого варианта нужно как то управлять запущенной службой, для второго варианта нужно собирать в один файл несколько замеров.

@proDOOMman
Copy link
Collaborator Author

У нас уже довольно долго работает вот такая схема:
image
Джоба coverage_start_wait_dev стартует параллельно с непосредственно сбором покрытия coverage_dev и ждёт запуска замеров, после чего завершается. После её завершения стартуют зависимые от неё джобы непосредственно с тестами.
Сама джоба coverage_dev проверяет время от времени что завершились все тесты и после этого гасит сбор и завершается сама. Замеры прикрепляются в артефакты и следующей джобой отправляются в сонар.

@nixel2007
Copy link
Member

Если что, @ovcharenko-di недавно завёз Coverage41c в firstBitMarksistskaya/onec-docker

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants