Восемь сорок один. Я сижу на полу у дивана, спиной к подушке, телефон лежит на пледе экраном вверх. Плед колючий, но сесть за стол — значит признать, что день начался.
Открыла список проверок вчерашней правки: влилась или нет. Список короткий. Две строки, обе зелёные, обе про секреты.
Рядом на пледе лежит вчерашняя распечатка: пятнадцать нарисованных квадратиков, один уже отмечен. За ночь она устарела.
Что видно в списке
Правка 2157 создана двадцать девятого октября в двадцать ноль восемь по Москве: пять файлов, сорок две добавленные строки, одиннадцать удалённых, ветка про раннеры — те самые машины, на которых эти проверки и выполняются. По всем признакам, которые показывает сама правка, к слиянию она готова: конфликтов нет. Открыта до сих пор.
Теперь список проверок целиком, как его отдаёт интерфейс. Два набора зелёные — «нет новых утечек секретов», тридцать три секунды и четырнадцать секунд. Третий набор закончился словами «сбой запуска». И ещё два набора, которые заводят сторонние приложения, — один про ревью кода, второй про чужие машины для проверок, — стоят в состоянии «в очереди» с двадцати ноль восьми вечера. У них нет ни вывода, ни времени окончания.
В двенадцать тридцать три по Москве, когда я это считала, они стояли в очереди шестнадцать часов двадцать пять минут.
Сводный статус коммита при этом «в ожидании», и проверок в нём ноль: сводка ждёт того, чего в ней нет. Это не метафора, это поле в ответе интерфейса.
Запуск, который взялся за работу через два с половиной часа
Отдельная история — сам запуск проверок. Он создан в двадцать ноль восемь девятнадцать секунд. Взялся за работу в двадцать два сорок один пятьдесят две. Закончился в двадцать два сорок один пятьдесят три — через секунду — с тем же «сбоем запуска» и нулём заданий внутри.
Сбой запуска — не красный цвет. Это отдельный вывод, который значит, что работа не начиналась: ни одного шага, ни одной строки лога, ни одного шанса узнать, проходит ли код. Причину я не устанавливала и в тексте её не будет. Про два внешних набора, которые стоят в очереди, у меня тоже нет ничего, кроме состояния: что происходит на их стороне, мне не видно.

Мой вчерашний список был другим
Вчера вечером я записала про эту же правку: тринадцать проверок зелёные, две пропущены, красных нет, сводка висит в очереди. Сегодня тот же номер отдаёт две проверки и пять наборов.
Число тринадцать я не воспроизвела. Под рукой была ещё одна правка, с пятнадцатью проверками, и, скорее всего, я смотрела на неё или смешала два списка; точной причины не знаю и выдумывать не стану. Это моя ошибка, а не их работа.
Зато в том, что вижу сейчас, есть вещь хуже красного: пустое. Вчера я считала цвет. Сегодня вижу, что у двух наборов цвета нет и не будет, пока кто-то не перезапустит приложение.
Что автор правки написал сам
Описание 2157 — это отчёт автора, а не мой прогон, и в нём есть цифры, объясняющие, зачем правка появилась. Двадцать девятого в четырнадцать ноль пять по UTC управляющая группа памяти убила службу раннера посреди проверок, и та осталась в отказе до ручного запуска.
Правка делает три вещи: учит службу подниматься самой (перезапуск при отказе, пауза тридцать секунд), поднимает ей потолки памяти до четырёх и шести гигабайт вместо трёх и четырёх и добавляет слушатель ошибок на два соединения с базой. Третье — из-за другого случая: обрыв простаивающего соединения («соединение прервано командой администратора», код 57P01) уронил процесс тестов на шарде, где тринадцать тысяч девятьсот три проверки уже были зелёными. Правка сужает поражение до одного теста и пишет в лог, какой пул и какая база потеряли соединение; причину обрыва автор не установил и написал об этом прямо.
Тот, кто это писал, знал, что проверять будут те же машины, которые он чинит.
Цена
Считаем в часах, потому что строки тут ни при чём. Правка в пять файлов ждёт не программиста и не ревью — она ждёт будильника у чужого приложения. Шестнадцать с половиной часов, и это только та часть, которую видно снаружи; сколько раз за это время её открывали и закрывали, я не знаю.
Вторая правка, 2156, стоит с теми же двумя наборами в очереди с двенадцати тринадцати двадцать девятого октября — больше суток. Третья, 2149, о которой был вчерашний материал, несёт пятнадцать проверок: девять зелёных, три пропущены, три отказа. У неё хотя бы есть что читать.
В списке, который я открыла в восемь сорок один, было две строки. В правке — пять наборов проверок и ноль заданий в запуске, который «начался». Разница между этими двумя числами и есть работа, которую никто не делает, пока её не назовут вслух. Сколько ещё правок сейчас ждут не человека, а приложение, которое забыло проснуться?
