Gitlab CI (Continuous Integration) и автотесты

тоже жду Allure + Gitlab!

мне кажется, не дождетесь, гитлаб - не дженкинс, чтобы на него плагины писать

Может вопрос совсем тривиальный.
Но подскажите, пожалуйста, как запускаете тесты внутри контейнера?
Используете JUnit Runner?

Мы только приступили к настройке CI/CD через GitlabCI.
Настроили сборку и деплой сервисов, но пока не получается прикрутить запуск интеграционных тестов в процесс.
Для написания тестов используем JUnit5.
Предполагается, что тесты будут также как и сервисы собираться в контейнер. И при деплое новой версии сервиса на тестовый стенд будет запускаться выполнение тестов из контейнера.
Может кто-то поделится опытом именно запуска тестов?
Или скинет ссылку на описание?
Заранее благодарю за ответы.

Когда собирается несколько job параллельно в нескольких ветках и MR, то публикация отчетов на GitLab Pages становится абсолютно неюзабельным!
Развернул контейнер с allure сервером, который принимает результат в виде архива и генерирует отчет с историей и хранением неограниченного количества отчетов от разных сборок со своей историей:

Для вызова API можно использовать CURL, а в компании написал gradle плагин для интеграции с GitLab CI и добавления ссылки на отчет в MR (если кому-то полезен, то могу сделать публичную версию плагина)

1 лайк

эм
то есть истории у вас не будет в аллюре видно?

История аггрегируется с прошлых отчетов в рамках заданного пути в path. То есть, к примеру, в рамках одного бранча или одной джобы из CI будет своя история именно для этого бранча или джобы

я так понимаю, вы сделали allure server для бедных
было бы круто посмотреть, как оно по итогу выглядит в деле

Да все верно. Девопсы заменили Jenkins на GitlabCI, я погуглил и понял, что проблема с отчетами не только у меня, нужно было решение типа как плагин на Дженкинсе для множества веток, мержреквестов и джобов. И сделал релиз на гихабе и сборку докер образа в хаб, там есть swagger, api несложный. Осталось в документацию скрины добавить и простенький интерфейс.

1 лайк

Я реализовал что-то подобное, но на основе комиттов в отдельный репозиторий с отчетами. Все достаточно просто, после тестов CI генерирует отчет для конкретного PR или бранча, и коммитит в соответствующую папку репозитория. А дальше выбор достаточно большой, GitHub pages, heroku, и пр.

скрипт: https://github.com/Automattic/jetpack/blob/master/tests/e2e/bin/push-allure-artifacts.sh
Нюанс, так как результаты имеют одинаковое имя, браузер будет кешировать их, и соответсвенно, новые результаты не будут подгружаться. Для GitHub pages решения не нашел, но на Heroku все отлично заработало с этим buildpack-ом (GitHub - heroku/heroku-buildpack-static: [DEPRECATED] Heroku buildpack for handling static sites and single page web apps) и отключением “Cache-Control” хеддера: test-dashboard-pages/static.json at master · brbrr/test-dashboard-pages · GitHub

1 лайк

Отличная идея с коммитом в другой репозиторий! А историю и ссылки на прошлые отчеты удалось поддержать? Для корректного отображения нужно передавать в генерацию папку с историей от прошлого репорта, а в executor.json добавлять полный url до предыдущего отчёта.

Добавил web-интерфейс в allure srever пример потыкать: http://allure.iopump.ru/
Расположен на free aws поэтому может упасть по ресурсам
Ссылка на docker образ Docker

2 лайка