Labels

Тема дорожной карты · GitHub Actions

Метки runner'ов GitHub Actions — это теги, которые вы прикрепляете к вашим runner'ам для определения места их выполнения. Они играют ключевую роль в выборе подходящего runner'а для выполнения конкретного задания в workflow. Метки помогают организовать и распределить нагрузку между различными runner'ами, что особенно важно для эффективной работы CI/CD систем. Использование меток позволяет точно настроить выполнение задач на нужных вам runner'ах, что повышает производительность и надёжность процесса.

Как это работает

Labels runners работают на ваших машинах (VM, bare metal, k8s). Установите actions-runner пакет; зарегистрируйте через токен. Тегайте runners labels (self-hosted, linux, gpu) — workflows матчатся. Авто-скейл пулов runner через actions-runner-controller (k8s), runs-on.com или Philips Labs/terraform-aws-github-runner. Self-hosted runners получают полный доступ к репо — никогда не расшаривайте между недоверенными проектами.

Когда применять

Метки runner'ов особенно полезны, когда вы хотите настроить выполнение заданий на конкретных машинах или виртуальных машинах. Это особенно важно для self-hosted runner'ов, которые могут быть настроены для выполнения специфических задач, таких как сборка кода с использованием специального оборудования (например, GPU) или доступ к приватным ресурсам. Когда задачи требуют длительного времени выполнения (более 6 часов), или когда вы хотите использовать локальные ресурсы вместо облачных, метки помогают организовать и распределить нагрузку между различными runner'ами.

Типичные ошибки

Когда вы используете метки runner'ов, важно избегать распространённых ошибок. Например, если self-hosted runner расшарен между публичными и приватными репозиториями, это может привести к уязвимостям безопасности. Другой распространённой ошибкой является отсутствие регулярного обновления runner'ов, что может привести к накоплению уязвимостей. Кроме того, если runner остаются в режиме online и принимают задачи откуда угодно, это может привести к нежелательному выполнению задач. Важно ограничить доступ через runner_group, чтобы избежать таких проблем.

Связанные понятия

Полезные ресурсы