CI/CD для "канареечных" релизов
1. Интеграция автотестов в CI/CD пайплайн с канареечными релизами Эта диаграмма показывает общий процесс интеграции автотестов. После сборки и первоначального тестирования, небольшой процент пользователей направляется на "канареечную" версию приложения. Если автотесты и мониторинг показывают стабильность, то полная версия релиза выкатывается всем. 2. Режим релиза канареечный или стабильный, управляется через фича тоглы в продукте Похоже придется пересмотреть способ публикации, прошу сильно не бить))
· 23.09.2025
А вот какой вопрос возник)) Допустим есть какой-то микросервис, и есть автотесты для контрактного тестирования (с мокированием бд, и всего остального что нужно) для этого сервиса. Далее в сервисе происходит изменение в какой-то одной функции/классе и после заливки изменения в репу - должны же запустится только те контрактные тесты, которые завязаны на измененеой функции, а не все что имеются у нас, как это можно легко организовать?
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 23.09.2025
Например привязка тестов к коду через статический анализ изменений.
Как организовать: 1. Сопоставить тесты с кодом. Создать карту зависимостей: какой тест проверяет какой endpoint, который использует какой класс/функцию. Это можно сделать с помощью аннотаций, naming convention или отдельного конфига. 2. Определить измененный код. На этапе CI (например, в GitLab CI или GitHub Actions) с помощью (git diff, dependencies-check) чтобы понять, какие файлы/классы/функции были изменены в пулл-реквесте)) Примерно так
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 23.09.2025
Готовлю несколько статей, в том числе и по текущему вопросу) жаль что сетка без веба интерфейса, немного не удобно публиковать большую статью с мобильного устройства, думаю сделать что-то в духе пошаговых картинок-слайдов с текстом)
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 23.09.2025
Не нравится мне такие варианты, сложные, хочется чего-то попроще)
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 23.09.2025
По проще, сделать интеграцию репозитория разработки и тестирования так, чтобы CI отдавал все переменные, а на стороне репы автотестов, принимать и проверять на какую среду сделали деплой разработчики, на фронт или бек) напиши пжлст в личные сообщения, есть проект, реализовывал с ноля, можем созвониться в зуме например, покажу и расскажу как работает) как раз вариант с передачей переменных из CI разрабов в CI автотестов)
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 23.09.2025
Кусочек кода, как раз того самого решения, с передачей переменных из CI разработки в CI автотестов, и исходя из того, куда пошел деплой и какими параметрамы, в CI QA парсили переменные и принимали решение, какие тесты на каком окружении запустить))
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 23.09.2025
Это интересно, но я и ленив для такого решения)) я все думаю о неком абстрактном решении, типа есть фрейм по тестам контрактов, логика по типу - закинул туда proto файл или например ссылку на openapi, внутри авто генерация тестов на основе полученной доки, и вот далее думал про отслеживание git diff, но не вариант, так как тестовый фрейм не знает внутрянки сервиса, передавать через из env ci из дев в тест - там портянка может быть с переменными, вот никак придумать не могу какую-то абстрактную штуку, чтоб раз написал и для всех микросервисов)
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён