Агент в непрерывной интеграции удобен, а стоит дороже, чем кажется. Заметно это не сразу: расход растёт вслед за активностью команды, а не вслед за вашими решениями.
Ниже о том, как сохранить пользу и убрать лишний счёт.
Главная ошибка: запуск на каждый коммит
За день разработчик пушит десять раз, доводя ветку до ума. Если агент стартует на каждый пуш, девять прогонов из десяти оплачены зря: результат никто не читал.
Привязывайте агента к пул-реквесту, а не к пушу. Ещё лучше запускать его на событиях «открыт» и «готов к ревью», а не на каждом обновлении ветки.
Сузьте область работы
Агент, который на каждом запуске читает весь репозиторий, снова и снова платит за контекст. Отдайте ему только диф.
Чаще всего в CI нужно ревью изменения, а не аудит проекта. Разница в расходе составляет порядок.
Подберите модель под каждую проверку
В CI обычно живут проверки разного веса, и модели им нужны разные.
- стиль, забытые отладочные строки, оформление сообщений коммитов: младшая модель
- ревью логики изменения и поиск ошибок: модель посильнее
- аудит архитектуры: флагман, и точно не на каждом PR
Не платите дважды за одно и то же
Пайплайн перезапустился из-за упавшего линтера? Агенту незачем снова разбирать тот же диф. Кэшируйте результат по хешу изменений.
С матрицей сборок так же: агент запускается один раз, а не в каждой её ячейке.
Отдельный потолок для автоматизации
Заведите для CI отдельный ключ, чтобы расход автоматики не смешивался с ручной работой. Объём работы ограничивайте в самом CI.
Создайте именованный ключ для CI, чтобы видеть его расход отдельно, выберите Premium или Cheap и при необходимости срок действия. Для Cheap можно разрешить резервный Premium. API ключей не умеет задавать бюджеты, лимиты запросов и списки моделей на ключ, поэтому повторы и объём работы ограничивайте в настройках CI.
Что мерить
Три цифры, которые стоит держать перед глазами:
- расход на один пул-реквест
- доля прогонов, результат которых никто не открыл
- цена одного дефекта, найденного агентом
Третья цифра неприятная, но именно она отвечает на вопрос, окупается ли автоматизация.
Коротко
Привяжите агента к пул-реквесту, дайте ему узкий диф, подбирайте модель под задачу и заведите именованный ключ для автоматизации. Объём работы режьте на стороне CI и следите за статистикой расхода.