Тестирование тестов в Docker image
Поставлена задача перевести автоматические тесты QA в Docker. Идея в вледующем: 1) Создать Docker image под Java 8, с браузерами Chrome , FireFox. 1.1. Как это сделать правельно? 1.2. В настоящее время использую docker-compose который берет эти браузеры из docker-hub, связывает их с hum и утсанавливает порты. Как это сделать в новой docker image? Мы используем Гугл Клауд а он только может испльзовать dokcer file, docker-compose он не признает
2) Также нужно сделать так чтобы исходный код с тестами при каждом вызове этой image шел на Гитхаю репозиторий и брал от туда последний кон с мастера
3) Ну и конечно чтобы можно было это вызывать через команду mvn test -P ci -Durl "https...(это тестировачная environment)".
Провел день с этим, начальник спрашивает, а у меня ничего нет вообще, я в этом не понимаю, а специального человека devops у нас нет. Если можно опишите подробные шаги
Спасибо
Ответы (1 шт):
Поставлена задача перевести автоматические тесты QA в Docker.
Непростая, но интересная задача.
2) Также нужно сделать так чтобы исходный код с тестами при каждом вызове этой image шел на Гитхаю репозиторий и брал от туда последний кон с мастера
Не надо так.
Проводим инвенторизацию:
- Github repo + Github Actions (CI)
- Google Cloud
В github repo добавляем workflow для тестирования (Пример).
CI / CD pipeline:
- Реальность ...
- Разработчик пушит в repo - запускает build образа приложения (on-push, on-merge)
- Линты / unit тестирование / etc
- Заливаем образ приложения на Google Cloud (нужный environment)
- TODO: Запускаем интеграционные тесты
- Деплой на продакшен
Провел день с этим, начальник спрашивает, а у меня ничего нет вообще, я в этом не понимаю, а специального человека devops у нас нет. Если можно опишите подробные шаги
Логично, что с этим проблема, так как CI / CD - нету или про него не знаете.
Как поступить:
- Узнать про CI / CD или начать его делать пошагово
- Быть готовым к тому, что просрочите срок и не раз
- После запуска CI, обязательно появятся проблемы с
workflow - Делать маленькие образы (alpine based), кешировать, ускорять pipeline
Tips & Tricks:
- build / unit / lint можно совместить с docker multi-stage build