
GitHub Actions или GitLab CI: крупный исполнитель сжигает минуты быстрее

Для частных репозиториев GitHub Actions в приведённых ниже сценариях дешевле GitLab CI по расходам на исполнение заданий. Но сравнивать только включённые минуты нельзя: в GitLab расход зависит от коэффициента исполнителя, а у GitHub крупные исполнители оплачиваются по отдельной ставке без зачёта включённых минут.
Полный прогноз счёта складывается из времени каждого задания, выбранной машины и операционной системы, тарифа для пользователей и хранения артефактов. Расчёты ниже предполагают одинаковую длительность заданий на обеих платформах. Это условие позволяет сравнить тарификацию, но реальная сборка может ускориться или замедлиться после смены исполнителя.
Из чего складывается цена частного репозитория
Для стандартных исполнителей тарифы GitHub включают 2 000 минут на бесплатном плане, 3 000 на командном и 50 000 на корпоративном. Командный план стоит $4 за пользователя в месяц; на странице цены указано условие о первых 12 месяцах. Квота относится к учётной записи или организации, которой принадлежит репозиторий, а не выдаётся каждому участнику отдельно.
У GitLab.com бесплатный тариф и GitLab Premium включают соответственно 400 и 10 000 вычислительных минут в месяц. Premium стоит $29 за пользователя в месячном эквиваленте при годовой оплате. Дополнительные минуты продаются пакетами по 1 000 за $10; бесплатный тариф допускает до пяти пользователей в группе верхнего уровня.
Расход следует считать по заданиям: параллельные задания потребляют минуты одновременно, даже если весь конвейер завершается быстрее их суммарной длительности. В GitLab длительность каждого задания умножается на коэффициент машины, и результат списывается из квоты группы. У GitHub размер машины влияет на поминутную ставку; для крупных исполнителей включённая квота не уменьшает платёж.
Калькулятор: 5 000, 50 000 и 500 000 минут
Начнём с условного месяца на бесплатных тарифах и базовых исполнителях Linux. Стандартный двухъядерный исполнитель GitHub стоит $0,006 за минуту сверх квоты, а коэффициент малого исполнителя GitLab равен 1. Поэтому формула GitHub — оплачиваемые минуты сверх 2 000, умноженные на $0,006. У GitLab из фактических минут вычитаются 400 включённых, после чего потребность в дополнительных минутах округляется вверх до целых пакетов.
- 5 000 минут: GitHub начислит $18. GitLab потребует 4 600 минут сверх квоты — для их покрытия нужно купить пять пакетов за $50.
- 50 000 минут: GitHub начислит $288. GitLab потребует 49 600 минут сверх квоты, то есть пятьдесят пакетов за $500.
- 500 000 минут: GitHub начислит $2 988. GitLab потребует 499 600 минут сверх квоты, то есть пятьсот пакетов за $5 000.
Это расчёт покупки минут при заданной нагрузке, а не обещание одинакового счёта каждый месяц. Неиспользованные купленные минуты GitLab переходят на следующий месяц, поэтому уже приобретённые пакеты могут покрыть часть будущего расхода. Для GitHub здесь предполагается, что указанный объём уже учитывает округление времени отдельных заданий до целой минуты; множество коротких запусков может увеличить оплачиваемое число минут.
Что меняется при одинаковом числе ядер

Для следующего сравнения возьмём четырёхъядерный Linux-исполнитель GitHub и средний исполнитель GitLab с четырьмя виртуальными ядрами. Характеристики размещённых машин GitLab также показывают два виртуальных ядра у малого размера. Равное число ядер не гарантирует равного времени сборки: процессоры, память и окружение могут различаться. В модели длительность задания оставлена одинаковой.
Условная команда состоит из пяти оплачиваемых пользователей на командном тарифе GitHub и GitLab Premium. Плата за места в месячном эквиваленте составляет $20 и $145. Четырёхъядерный GitHub оплачивается по $0,012 за каждую минуту без зачёта квоты; средний GitLab списывает две вычислительные минуты за фактическую, а первые 10 000 покрывает тариф. Покупку дополнительных минут GitLab снова округляем до пакетов.
- 5 000 фактических минут: $80 у GitHub и $145 у GitLab. На GitLab нагрузка ровно исчерпывает включённую квоту.
- 50 000 минут: $620 у GitHub и $1 045 у GitLab. Последнему нужны 90 пакетов сверх квоты на 10 000 вычислительных минут.
- 500 000 минут: $6 020 у GitHub и $10 045 у GitLab. В эту сумму GitLab входят 990 пакетов дополнительных минут.
Плата за места особенно заметна при небольшом объёме сборок: в первом сценарии она составляет весь расчётный платёж GitLab. На больших объёмах основную разницу дают правила оплаты исполнителя. Если команда использует другой план или число оплачиваемых участников, стоимость мест нужно заменить в формуле, сохранив отдельно расчёт минут.
Операционная система и хранение артефактов

Замена Linux на другую систему меняет входные данные калькулятора. Для стандартных исполнителей GitHub минута двухъядерного Windows стоит $0,010, а macOS — $0,062 вместо $0,006 у Linux. У размещённых исполнителей GitLab коэффициент Windows среднего размера равен 1, macOS на M1 — 6, macOS на M2 Pro — 12; перечисленные варианты Windows и macOS имеют статус бета-версии. Названия размеров у разных систем не обозначают одинаковую мощность, поэтому коэффициент GitLab нельзя подставлять вместо ставки GitHub.
Хранение артефактов добавляет к расчёту ещё одну переменную: сколько данных остаётся после сборки и как долго они сохраняются. Во всех суммах выше эта переменная принята равной нулю, поскольку объём артефактов не задан. Если он существенен, к каждой оценке нужно прибавить стоимость хранения по правилам выбранного тарифа; число минут само по себе её не показывает.
Когда дешевле сменить исполнитель, чем платформу
При условных 50 000 минутах средний исполнитель GitLab Premium даёт расчётный месячный эквивалент $1 045. Если те же задания выполняются за то же время на малом исполнителе GitLab, коэффициент снижается с 2 до 1, а сумма становится $545: разница составляет $500. Переход с исходной конфигурации на рассмотренный четырёхъядерный GitHub даёт разницу $425 в месяц до расходов на перенос.
В этом сценарии смена исполнителя экономит больше, чем смена платформы, если меньшая машина сохраняет длительность заданий. При замедлении сборок экономия уменьшится, а перенос конвейеров потребует работы команды и последующего сопровождения. Решение о платформе имеет смысл принимать по сумме платы за места, вычисления и хранение за ожидаемый срок работы, с фактическим временем заданий для каждой выбранной машины.
Читайте также:
Похожие статьи


GitLab или Bitbucket: низкая цена проигрывает, если Jira — не центр разработки

Преимущества использования резервного копирования GitHub

Figma Make связала холст с GitHub, но код по-прежнему проверяют инженеры

10 бесплатных нейросетей: платить не нужно, но лимиты решают выбор

Anthropic закрепила Fable 5 в подписках Max и Team Premium
Подпишитесь на рассылку
Получайте свежие новости Web3, AI и криптовалют прямо на вашу почту.