e2e Cypress тесты. Для этого мне нужно в github actions каким-то образом запускать бекенд и базу + настроить их общение между собой. При этом хотелось бы под каждый тест иметь свежую базу, т.е. нужно еще как-то настроить её дроп (наверное)
Вопрос: может ли кто-то подсказать как мне это сделать? Может какое-то видео с инструкцией, или статья. Или я вообще неправильно понимаю то, как это должно быть.
Для справки, у меня также фронтенд и бекенд билдятся в docker image и пушатся в registry, так что бекенд я могу подтянуть в проект фронтенда через docker, по-идее. Но опять же, не знаю, так ли это вообще делается
Может хаски? Не прокатит?
https://docs.github.com/en/actions ?
По своему опыту я вывел что хаски только всех бесит Я лично привык делать коммиты не 1 на всю фичу, а последовательно. При этом бывает что могу написать кучу кода, а потом уже кучу разбиваю по коммитам. В итоге хаски на каждый коммит будет бесить. Поставить на каждый пуш – все равно будет бесить, как минимум потому что машина будет более загружена. CI в этом плане в сто раз лучше, ибо ты просто запушил и забыл, а если что-то сломается, ты получишь нотификацию
Серьезно? 🙂 Спасибо, но я видел Вопрос не в «что такое CI и как его написать если репозиторий в GitHub» 🙂
Ну и для хаски все равно придется делать +- то же самое, только локально 🙂 Репозитории то разные
Ну вариант ведь остается вариантом. Запушил - забыл может быть чем-то хорошим, пока ты не сталкиваешься с базой куда тебе нужно что-то писать. Энивэй можно на тачку постучаться, что-то там запустить, но ты через пайплайн даешь получается рут доступ к серверу, где тебе могут говна на вентилятор накидать неучтивые студентики. И, получается, встаёт выбор - откупиться локальным тестированием и пайплайнами без рута, или же получить упавший контур.
Почему же, я не даю никакой доступ к серверу В пайплайне фронта я скачиваю код бекенда, устанавливаю зависимости и просто раню бекенд. Там обычный node express crud. envs прокидываю через secrets. База пустая, наполняется фикстурами под каждый тест Я правда пока что не понял как мне при каждом новом тесте опустошать базу, но мб чет и нагуглится
Просто я так прикинул, локально я буду делать +- тоже самое кроме скачивания бекенда. Т.е. локально все равно придется подымать бек, подымать тестовую базу, наполнять её и тд
Да опустошение это не самая великая проблема, мягко говоря) Теперь про пайплайн Твой пайплайн коннектится к серверу и к пользователю, который имеет доступ к инфрастуктуре, иначе бы ты не смог наполнить/прочитать/удалить и т.п. из базы. Если это контур чисто для пайплайнов и у него нет доступа к инфраструктуре контуров - это прекрасно. Если нет - беда.
Имхо тесты в хаски запускать оверкиль, ничего больше линтер с автофиксом туда обычно не залитает
Обсуждают сегодня