Поддерживает ли Github Action автономный раннер по требованию?

#github-actions #github-actions-runners #github-actions-self-hosted-runners

#github-действия #github-действия-бегуны #github-actions-self-hosted-runners

Вопрос:

Нам нужно использовать автономный бегун Github action, потому что нам нужен доступ к локальному ресурсу.

Я понимаю, что мы можем запустить автономный бегун на виртуальной машине или в контейнере docker.

Можем ли мы запускать автономный раннер по требованию? Например, бегун, размещенный на Github, который всегда использует чистую изолированную виртуальную машину и уничтожается в конце выполнения задания. Или, как агенты заданий в Azure DevOps / Github, которые создали чистый контейнер агента заданий для запуска конвейера и в конце удаляются.

Можем ли мы сделать что-то подобное с автономным раннером Gihub-action? Например, разрешить нам зарегистрировать виртуальную машину в движке Docker или кластере Kubernetes в качестве автономного бегуна. Когда я запускаю рабочий процесс Github, он должен запускать контейнер и запускать рабочий процесс внутри этого контейнера. После этого он должен удалить контейнер.

Возможно ли это сделать сейчас? Я не уверен, есть ли где-нибудь документ дорожной карты для Github action.

Комментарии:

1. Оформить заказ github.com/evryfs/github-actions-runner-operator — он предоставляет бегунов в зависимости от спроса.

Ответ №1:

Если вы используете AWS, вы можете попробовать ec2-github-runner. Он делает именно то, что вы ищете.

Я полагаю, что тот же подход может быть реализован и для других облачных провайдеров.

Сам GitHub на данный момент не предоставляет таких возможностей.

Комментарии:

1. это довольно круто, и вы также можете использовать ту же концепцию для работы с контейнером Windows Docker… если вы хотите сохранить свой хост в Сети, эффективно выполняйте на нем множество заданий и экономьте кучу $$$, если у вас есть занятая очередь.

Ответ №2:

Я думаю, что вопрос немного вводит в заблуждение, но, если я правильно понимаю, вы пытаетесь добиться того, чтобы рабочий процесс GitHub Actions без состояния выполнялся в вашем автономном бегуне. К сожалению, в настоящее время это невозможно.Только раннеры, размещенные на GitHub, работают так, как вы описываете. Согласно документации:

Бегун, размещенный на GitHub, всегда является чистой изолированной виртуальной машиной, и он уничтожается в конце выполнения задания.

Вы можете прочитать больше о различиях между каждым типом раннера здесь .

Комментарии:

1. Спасибо, Марчин. Как мне улучшить свой вопрос? ДА. Вы правильно поняли. Я хочу создать новый чистый контейнер на моей автономной виртуальной машине Runner для запуска рабочего процесса. и хотите удалить его после выполнения. Я знаю, что бегун, размещенный на GitHub, делает это. Если вы посмотрите на Azure DevOps или Gitlab, раннеры представляют собой чистый контейнер, и он был уничтожен после выполнения. Я ищу способ сделать то же самое с автономным бегуном.

2. Может быть, вы хотите оформить заказ github.com/evryfs/github-actions-runner-operator ?