репо-хаб в гитлабе, все проекты подтягивают оттуда нужные спеки для себя в зависимости от ветки.
Всё красиво как ёлка новогодняя, но один вопрос - при изменении спеки в этом хабе, как централизованно отследить какие проекты пользуются этой спекой? Что бы при изменении спеки поправить проект (понимаю, что измененять, а не расширять грешно, но всё же)
интеграционные тесты
не совсем то. Я хочу узнать о поломке не постфактум, а при мерже (как вариант) рабочей ветки спек-хаба в ветку стенда. Вдруг мне проще пока не вливать или вообще отложить изменения до следующего релиза. Ведь интеграционный тест делается на проекте подписчике. А если он изменяется раз в год, то и тесты не запустятся и приклад не пересобирется, а спека уже поменялась и соответственно измененные апи не будут работать. А если об этом узнается еще и спустя время, когда эта обновленная спека уже на всех остальных прикладах и в проде.
опять же интеграционные тесты, но запускать их можно перед merge. например сделать pipeline в gitlab. в github чтото подобное есть
Запускать то где? У меня спек-хаб не знает о подписчиках.
у всех подписчиков. Пересобирать все
Шикарный план
а как ты предполагаешь узнать, допустим обновив зависимость, что с ней что-то отвалилось? Не, ну может со спеками что-то под другому и они грузятся не как зависимости..)
Зависимости имеют версии. И там зачастую поддерживаются старые апи. Я не могу себе такого позволить, к сожалению
тесты тут не помогут, точнее помогут, но не полностью. мне нужно аналог sealed интерфейсов 🙂 что бы при изменении я мог знать заранее где смотреть и менять. Но видимо много хочу 🙂
При изменении, например, схемы ответа подписчики должны изменить схему тоже?
да, в роли изменятеля могу быть и я, главное знать где менять
У меня был опыт с пакт тестами. Помню, на дашборде был виден граф, какие сервисы от каких зависят. Если менялась схема ответа в сервисе, из которого наш сервис фетчил данные, то нам давали знать сразу после бюлда. В итоге соблюдался чёткий api контракт между сервисами без проведения интеграционных тестов. Возможно, это поможет
у меня не очень большой опыт с pact, ты имеешь ввиду вариант, когда сам json лежит где то вне самого приклада? тогда да, возможно это поможет. Спасибо, посмотрю в эту сторону
Обсуждают сегодня