1.9 KiB
1.9 KiB
api
Пакет api реализует протокол, по которому общаются компоненты системы.
Этот пакет не занимается передачей файлов и артефактов, соответствующие функции находятся в
пакетах filecache
и artifact
.
Worker <-> Coordinator
- Worker и Сoordinator общаются через один запрос
POST /heartbeat
. - Worker посылает
HeartbeatRequest
и получает в ответHeartbeatResponse
. - Запрос и ответ передаются в формате json.
- Ошибка обработки heartbeat передаётся как текстовая строка.
Client <-> Coordinator
Client и Coordinator общаются через два вызова.
-
POST /build
- стартует новый билд.- Client посылает в Body запроса json c описанием сборки.
- Coordinator стримит в body ответа json сообщения описывающие прогресс сборки.
- Первым сообщением в ответе Coordinator присылает
buildID
. - Тут можно было бы использовать websocket, но нас устраивает более простое решение.
-
POST /signal?build_id=12345
- посылает сигнал бегущему билду.- Запрос и ответ передаются в формате json.
Замечания
- Конструкторы клиентов и хендлеров принимают первым параметром
*zap.Logger
. Запишите в лог события получения/отправки запроса и все ошибки. Это поможет вам отлаживать интеграционные тесты в следующей части задания.