Теперь мы сталкиваемся с проблемой повторной публикации пактов посреднику, когда версия и тег остаются прежними, но содержимое пакта изменяется между (повторными) публикациями испытаний
Недавно наш CICD началиспользуя совершенно новый сервер Pact Broker, который заменяет старый.Изображение старого брокера взято из dius / pact-broker Изображение нового брокера взято из pactfoundation / pact-broker (последняя версия)
Для публикации пактов мы используем команду плагина "pact: publish" maven
Сценарий: (Значения projectVersion и тега одинаковы между испытаниями)
- Когда публикуете пакт в первый раз, все работает нормально (возвращаем 201)
- Когда повторнопубликация, пока содержание пакта остается прежним, возвращает ok (200), так как в пакте ничего не изменилось
- При повторной публикации, но содержимое пакта изменилось, возвращается ошибка 500, говорит один или несколько пактовфайлы были отклонены посредником.
в журнале посредника pact, ошибка отображается следующим образом:
2019-09-18 08: 38: 50.512340 E [9: puma 001Delegate.rb: 83] root - PG :: UniqueViolation: ОШИБКА: значение дублированного ключа нарушает ограничение уникальности "unq_latest_ppid_prov_conver" DETAIL: Ключ (provider_id, consumer_version_id) = (15, 39) уже существует .: INSERT INTO "latest_pact_publication_ids_for_consumer_versions "(" consumer_version_id "," provider_id "," pact_publication_id "," consumer_id "," pact_version_id ") ЗНАЧЕНИЯ (39, 15, 71, 16, 48) ВОЗВРАЩАЕМЫЙ НУЛЬ 2019-09-18 08: 38: 50.513334 E [9: puma 001 logging.rb: 37] root - ссылка на ошибку YouFegbNWY - Sequel :: UniqueConstraintViolation PG :: UniqueViolation: ОШИБКА: значение дублирующего ключа нарушает ограничение уникальности "unq_latest_ppid_prov_conver" DETAIL: Key (provider_id, consumer_version_id) = 15уже существует.
Я ожидаю, что pact broker позволит мне заменить для той же версии и тега существующее содержимое pact новым (насколько я могу сказать - это работало нормально в"старый" пакт брокер)