Подскажите, пожалуйста, как сделать запуск тестов в гитлабе в рамках

верфа? Да, я могу отдельно сделать джобу и запускать тесты в python:alpine образе, но если у меня в werf уже есть образ бека, то логичнее использовать его. Но как это сделать?

23 ответов

16 просмотров

что ты имеешь ввиду в рамках верфи?

Alexey-Erisov Автор вопроса
Владимир Муковоз
что ты имеешь ввиду в рамках верфи?

Ну то бишь, используя образ бэка, собранный верфом, и запустить тесты на нем. Есть мысль, что можно сделать отдельную джобу, но вместо werf converge будет werf run, но не знаю, для того ли сделан werf run

Alexey Erisov
Ну то бишь, используя образ бэка, собранный верфом...

у меня кстати тесты в докеркомопзе и запускаю я их через werf compose и там юзается образ собранный верфью, но я незнаю лучший ли это вариант, вероятно нет

Alexey-Erisov Автор вопроса
Владимир Муковоз
у меня кстати тесты в докеркомопзе и запускаю я их...

А вопрос, werf run и werf compose, он эти контейнеры тоже в кубе запускает? Просто в доке укзаано, что у него в параметрах сть куб конфиг, хороший ли это вариант, запуск тестов в кубе делать, логичнее ведь это делать в самом гитлаб раннере

Alexey Erisov
Ну то бишь, используя образ бэка, собранный верфом...

Что включает в себя запуск тестов? Исключительно запуск образа?

Alexey Erisov
А вопрос, werf run и werf compose, он эти контейне...

для werf compose нужен докерхост на сколько я понимаю и у меня для этого ранер не в кубе, а shell в виртуалке с докером и докер композом

Alexey-Erisov Автор вопроса
Сергей Голод
Что включает в себя запуск тестов? Исключительно з...

Использование базового образа бэка, просто вместо запуска джанго сервера, будет джанго тест, разовый

Alexey Erisov
Использование базового образа бэка, просто вместо ...

Для этого будет достаточно werf run. werf compose имеет смысл если окружение поднимается рядом с запускаемым образом.

Alexey-Erisov Автор вопроса
Сергей Голод
Для этого будет достаточно werf run. werf compose ...

А werf run поднимается там же, где сам werf (на гитлаб раннере), или он в кубе запускает джобу?

Alexey Erisov
А werf run поднимается там же, где сам werf (на г...

это как вы сами решите. Если в рамках пайплайна gitlab выберете соответствующий тэг - то джоба выполнится на соответствующем раннере если нужно запустить в кубере, то werf kubectl run

Alexey-Erisov Автор вопроса
Сергей Голод
это как вы сами решите. Если в рамках пайплайна gi...

ПОнял. То бишь werf run - выполнение прям здесь, а werf kube-run - в кубе?

Alexey Erisov
ПОнял. То бишь werf run - выполнение прям здесь, а...

если "прямо здесь" - на указанном раннере, то да. werf kubectl run - это запуск в кубере (аналог kubectl run)

Alexey-Erisov Автор вопроса
Alexey-Erisov Автор вопроса
Сергей Голод
если "прямо здесь" - на указанном раннере, то да. ...

А не подскажите, есть ли у верфа аналог docker exec? Либо, как-то потушить контейнер после werf run

Alexey Erisov
А не подскажите, есть ли у верфа аналог docker exe...

вообще-то контейнер после выполнения завершает свою работу и верф его ремувит

Alexey-Erisov Автор вопроса
Сергей Голод
screenshot вообще-то контейнер после выполнения завершает сво...

А не подскажите, можно как-то сделать werf run postgres - чтобы он не завершался, зател werf run test, и после test уже закрыть оба контейнера?

Alexey Erisov
А не подскажите, можно как-то сделать werf run po...

"можно". создать docker-compose.yaml в нём описать postgres как сервис, а ваше приложение зависящее от него (в рамках синтаксиса docker compose). И далее через werf compose run запускать ваши тесты Всё таки оно зависит от внешнего окружения, как я и спрашивал)))

Alexey-Erisov Автор вопроса
Сергей Голод
"можно". создать docker-compose.yaml в нём описать...

Да, сперва пытался без внешнего окружения, но не получилось. по werf compose почитал, но думал обойтись без лишнего compose-файла :D

Alexey Erisov
А не подскажите, можно как-то сделать werf run po...

Такое лучше через кубы, чартами. converge + dismiss

Alexey Erisov
Да, сперва пытался без внешнего окружения, но не п...

вот вы и пришли к интеграционным тестам. И тут либо создавать docker-compose или описывать тесты как набор подов запускаемых через werf kube-run. Либо отдельный чарт на такие тесты

Alexey-Erisov Автор вопроса
Сергей Голод
вот вы и пришли к интеграционным тестам. И тут либ...

Ну пока еще не интеграционные, но бэк написал тесты на django-pytest, и вот надо внедрить их в ci. Вот и думаю наилучший способ. Ну да, получается только композ файлом. В куб не хотелось это нести, пока куб только при деплое уже используется, а так получится, что кластер и для тестов используется, и для самого приложения. Пока выглядит слишком оверинжинирингом (но я понимаю, что сделать дополнительную джобу и деплоймент для чистой базы было бы проще, да)

Alexey Erisov
Ну пока еще не интеграционные, но бэк написал тест...

если тестам нужна СУБД и/или она не встроена в экосистему выбранного языка программирования, то это уже не совсем юнит-тесты..... самое простое в данном случае - описать в docker-compose

Alexey-Erisov Автор вопроса

Похожие вопросы

Обсуждают сегодня

Всем привет. Подскажите. Следующая ошибка при выполнении команды werf ci-env github --as-file - "unable to get synchronization client id: unable to get repo ghcr.io/*** tags: ...
2
pika.exceptions.ChannelClosedByBroker: (406, "PRECONDITION_FAILED - inequivalent arg 'x-message-ttl' for queue 'amo-crm.q' in vhost '/': received the value '60000' of type 'si...
Sergey
9
WERF_COMMIT_HASH если я правильно понимаю только внутри стапель сборки работает?
citius
2
Еще одну панику поймал: $ werf helm repo add --username gitlab --password ${CI_JOB_TOKEN} helm-werf ${HELM_REPO_V2_URL} "helm-werf" has been added to your repositories $wer...
citius
1
Всем привет 👋 может кто подсказать? Как мне добавить файлик без коммита в сборку stapel? С докерфайлом понятно Там allowContextAddFiles А как тоже самое сделать со stapel?
Sergeevich
5
Вот такая неприятность на stable и ea версиях: werf helm --namespace s4c upgrade --install --atomic --timeout 5m --set s4c.version=839185f3 --set s4c.deployEnv=staging -f d...
citius
6
Всем привет! Прохожу этот самоучитель. Дошел до # Настроим подключение к MinIO. mc alias set minio http://minio:9000 minioadmin minioadmin # Получим содержимое сохранённого...
Aleksandr
7
Всем доброго времени суток! Перестал запускаться сервер RabbitMQ, вижу по логам, что ругается на плагин, но по какой причине не могу понять. Можете помочь разобраться, куда ко...
Александр Семенов
2
https://habr.com/ru/companies/domclick/articles/500978/ Добрый день, подскажите, пожалуйста, насколько хорошая практика сделать вот такую структуру эксчейнджей и очередей для...
Sergey
5
Блин а мне как поумнеть ?
Toxin
191
Карта сайта