Рабочий процесс для тестирования Pact в функциональных ветвях - PullRequest
0 голосов
/ 18 февраля 2020

Я сейчас экспериментирую с Pact и наткнулся на проблему с рабочим процессом и не могу найти удовлетворительное решение. Надеюсь, кто-нибудь сможет мне помочь. :-)

Прежде всего, это мой текущий рабочий процесс для изменений на стороне потребителя:

  1. Изменения потребителя загружаются на Github в ветви функций
  2. Тесты Pact выполняются в системе CI, и полученный пакт загружается в брокер Pact с тегами [имя-элемента-ветви] и verify_feature (в настоящее время я использую только последний вариант). )
  3. Потребитель ожидает подтверждения (с помощью инструмента can-i-deploy)
  4. Пакт-посредник запускает провайдера через webhook (триггер: contract_content_changed )
  5. Поставщик запускает pact-verify для последней версии с тегом verify_feature и загружает результат
  6. Потребитель проверяет результат, если проверка прошла успешно, ветвь может быть объединена

Пока все хорошо. Проблема возникает, когда потребитель вводит критические изменения:
После того, как потребитель загружает изменения в Github, описанный выше процесс выполняется, и проверка поставщика не проходит, что, в свою очередь, приводит к сбою сборки клиента, как и ожидалось.

Теперь необходимые изменения внесены на стороне провайдера. Поставщик запускает pact-verify для потребительской версии этапа тестирования и, в случае успеха, затем объединяет и развертывает новую версию.

Теперь новая потребительская версия также может быть объединена. Увы, это не работает, потому что эта версия не была проверена снова. И когда я перезапускаю задание CI, пакт повторно загружается в посредник пактов, но, поскольку содержимое пакта не изменяется, никакой веб-крючок не запускается. Потребительская версия никогда не проверяется.

Итак, что я делаю не так?

1 Ответ

0 голосов
/ 19 февраля 2020

Вам нужна новая функция WIP pacts. В настоящее время он находится в стадии разработки и может быть доступен для бета-тестирования в pact- js (и других языках, которые обертывают pact- ruby -standalone) в течение нескольких дней, если вы захотите попробовать его. Если вы используете pact-jvm, вам придется подождать немного дольше, но мы можем обойти это. Я написал сообщение в блоге о WIP-пактах, но еще не опубликовал его, потому что функция не готова для публикации c. Вы можете найти этот пост здесь http://blog.pact.io/p/51906e22-ccce-486b-9993-c21794e557d4/ Я хотел бы получить ваше мнение о нем.

Перейдите на slack.pact.io и @ me, если вы хотите пообщаться в чате. Подробнее об этом.

...