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

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

23 ответов

34 просмотра

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

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 cleanup как-то старается не удалять промежуточные имаджи (ранее известные как артефакты)? Уже несколько раз из cache-repo улетал наш базовый node имадж. Что выглядит лог...
Vyacheslav
2
Здрасьти! Делаю Buildah+Docker-multistage. В первом имадже делаю COPY кода. Из них генерю файлы: 31229b03ef2ed26c5e02d0e8320f8a04 ./package.json a0b92a158d0bed9570350af0ed3e...
Vyacheslav
4
Всем привет. Werf v2.10.5 При удалении релиза вместе с неймспейсом (werf dismiss --namespace namespace_name) Сыпятся ошибки ┌ Waiting for resources elimination: namespaces/rel...
Vitalik Petrov
1
Вопросик не совсем werf. Но вдруг мы подскажите воркэраунд или ещё что-нибудь. Могу ли я как-нибудь в моменте деплоя внутри heml рендера получить хэшсумму файла шаблона (./tem...
Alex Подрябинкин
11
Всем привет. Сегодня добавили в приложение дополнительный образ nginx, в который докидывается системная статика прям в образ. При деплое бандлами деплоилось 200+ джоб(клиентов...
Владимир Муковоз
6
Друзья, добрый день. Прошу подсказать с базовым вопросом по использованию CI переменных gitlab в werf.yaml. Хочу в beforeInstall использовать env переменную с токеном. Мне нуж...
Anton Zol
10
В английской версии документации к докер инструкциям я увидел этот пункт: > Tip: you can also export environment variables right to the user stage instructions. В русской ...
Alex
3
всем привет) подскажите, судя по поиску, пару лет назад возникал вопрос насчет преобразования секретов при шифровании к строковому типу. Что-то за это время менялось? Сейчас ...
Denis Yudin
9
Добрый день, после перехода с версии 1.2 на 2.10 werf cleanup начал удалять использующиеся теги, и до и после обновления использовались дефолтные политики keepPolicies Подскаж...
Дмитрий
29
Вопрос. Имеем большие репозитории и медленные скорости. Из-за чего очень долго длятся пайплайны. Azure DevOps, PR пайплан, выкачиваем только эфимерный(виртуальный) комит, и з...
Alex Подрябинкин
11
Карта сайта