Рубрики
Uncategorized

Развертывание Действия GitHub Самоустановленные бегуны на Koyeb

Действия GitHub Позволяет автоматизировать жизненный цикл вашего рабочего процесса разработки программного обеспечения прямо в вашей Gith … Помечено Github, Docker, Serverless, Devops.

Действия GitHub позволяют автоматизировать жизненный цикл рабочего процесса разработки программного обеспечения прямо в вашем репозитории GitHUB. Рабочие процессы, которые вы развернули, позволяют создавать множество рабочих мест, включая CI/CD.

Рабочий процесс Действия GitHub изготовлен из файла YAML, содержащий всю конфигурацию и команды для выполнения на определенных событиях. Выполнение рабочего процесса сделано на бегунов. Бегун — это приложение, которое запускает работу от рабочего процесса действий GitHub. В то время как Github изначально предоставляет управляемые бегунам, может быть интересно развернуть себя в разных случаях:

  • Нужен разный процессор, диск и ресурсы памяти, чем бегуны, предлагаемые Github.
  • Необходимо выполнить рабочие процессы на определенные операционные системы, не предлагаемые GitHub.
  • Требуется выполнение рабочих процессов на определенные аппаратные или процессорные архитектуры: GPUS, ARM и т. Д.
  • Необходимо взаимодействовать с ресурсами Github Runners не могут получить доступ, то есть услуги в виртуальной частной сети и т. Д.
  • Хочу контролировать, где выполняется выполнение рабочего процесса

В этом руководстве мы продемонстрироваем, как развернуть Github Actions Actions Sughted Runners на Koyeb и запустить базовый «Hello World!» Github Действия Рабочий процесс.

Требования

Чтобы успешно следовать и завершить это руководство, которое вам нужно:

  • А Койеб аккаунт Развернуть и запустить действия GitHub, Самоведящий бегун
  • А Аккаунт GitHub С существующим репозиторием и рабочим процессом действий GitHub, который вы хотите запустить на самого хозяина

Шаги

Для развертывания самостоятельно размещенного GitHub Action Runner на Koyeb вам необходимо выполнить следующие действия:

  1. Построить Github Действия Runner Docker Image
  2. Нажмите изображение докера на реестре контейнера GitHub
  3. Настройте репозиторий GitHUB, чтобы использовать самосоведочный бегун GitHub
  4. Развернуть самосоведочный бегун GitHub на Koyeb
  5. Запустите рабочие процессы GitHub Actions, используя самосоведуемый бегун GitHub

Построить Github Действия Runner Docker Image

Первый шаг — создать DockerFile для установки Runner Action Github. Затем мы построим изображение Docker и подтолкните его к реестру контейнеров GitHub. Как Koyeb позволяет вам горизонтально масштабировать количество услуг, вы сможете развернуть столько, сколько вам нужны бегуны GitHub на Koyeb.

Для начала создать новую папку, которую мы создадим DockerFile:

mkdir gh-self-hosted-runner
cd gh-self-hosted-runner

В каталоге мы создали, создайте Dockerfile Файл и вставьте содержимое ниже:

FROM ubuntu:latest

ENV RUNNER_VERSION=2.278.0

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
    ca-certificates \
    curl \
    libicu-dev \
    netcat

WORKDIR /gh-runner

RUN curl -o actions-runner-linux-x64-${RUNNER_VERSION}.tar.gz -L \
            https://github.com/actions/runner/releases/download/v2.278.0/actions-runner-linux-x64-${RUNNER_VERSION}.tar.gz

RUN tar xzf actions-runner-linux-x64-${RUNNER_VERSION}.tar.gz

COPY entrypoint.sh .

RUN adduser --no-create-home ghrunner -uid 1001
RUN chown -R ghrunner:ghrunner /gh-runner

USER ghrunner

EXPOSE 3000
ENTRYPOINT ["/gh-runner/entrypoint.sh"]

Вы можете заметить, что мы устанавливаем Netcat в DockerFile. Мы реализуем эту операцию, поскольку платформа Koyeb выполняет проверку здоровья TCP на сервисах, которые вы развернули, чтобы убедиться, что они работают и работает. Мы используем NetCat для выставления порта 3000 в нашем приложении Runner Action Github Actions, поэтому Koyeb может гарантировать, что он работает и работает правильно.

В том же каталоге создайте enterpoint.sh файл. Этот файл содержит скрипт Наш контейнер будет выполняться во время загрузки:

#!/bin/bash

if [ -z ${GH_RUNNER_TOKEN+x} ]; then
  echo "GH_RUNNER_TOKEN environment variable is not set"
  exit 1
fi

if [ -z ${GH_REPOSITORY+x} ]; then
  echo "GH_REPOSITORY environment variable is not set."
  exit 1
fi

nohup nc -lk 3000 &

/gh-runner/config.sh --url https://github.com/$GH_REPOSITORY --token $GH_RUNNER_TOKEN
/gh-runner/run.sh

Создайте изображение Docker, выполняя следующую команду:

docker build . -t ghcr.io//gh-self-hosted-runner

Позаботься, чтобы заменить <Ваше имя пользователя GitHub> С вашего имени пользователя GitHub

Нажмите изображение докера на реестре контейнера GitHub

С нашим изображением Docker построен, теперь мы можем загрузить его в реестр контейнера GitHUB. В вашем терминале запустите команду ниже, чтобы нажать изображение.

docker push ghcr.io//gh-self-hosted-runner

В течение нескольких минут вы увидите свое изображение Docker, доступное на реестре контейнера GitHub: https://github.com/?tab=packages Отказ

Настройте репозиторий GitHub, чтобы использовать самообъективный GitHub Actions Runner

На GitHub перейдите к репозиторию, который вы хотите использовать самообслуживания GitHub Activing Runner и нажмите на Настройки вкладка. В меню левого бока нажмите Действия и выберите бегуны в подменю.

Вы приземлитесь на бегуны Страница настроек. Нажмите на Добавить бегун Кнопка, чтобы добавить новый самообъективный бегун, появляется страница конфигурации бегуна.

В Настроить Раздел, скопируйте токен, то есть здесь: Aathld2aexmprbipvthmtavteor И сохраните это безопасное место. Вам понадобится в следующем разделе при развертывании Runner Действия GitHub на Koyeb.

./config.sh --url https://github.com/edouardb/runner-test --token AATHLD2AEXMPRBIPVTZVHMTAVTEOR

Развернуть самосоведочный бегун GitHub на Koyeb

Чтобы развернуть самосоведочный бегун GitHub на Koyeb, перейдите на панель управления KOYEB и нажмите на Создать приложение кнопка.

В форме заполните Docker Image поле с названием изображения, которое мы ранее создали, которое должно выглядеть как ghcr.io//gh-sfels-hosted-runner Отказ

Установите флажок Используйте частный реестр И, в поле Select, нажмите Создать секрет реестра Отказ

Модаль открывает спрашивать:

  • Имя для секрета, который будет создан, например GH-реестр-секрет
  • Поставщик реестра для генерации секрета, содержащего ваши частный учетные данные реестра, в нашем случае GitHub
  • Ваше имя пользователя GitHub и действительный токен GitHub, имеющие разрешения на чтение реестра/запись в качестве пароля, как только вы заполнили все поля, нажмите на Создать кнопка.

В Порты Раздел, изменить экспортный порт из 80 к 3000 и из протокола Http . к TCP Отказ Этот параметр необходим для того, чтобы Koyeb выполняет проверки здоровья и убедитесь, что ваш сервис работает и правильно работает.

В Переменные среды Раздел создал два переменных среды:

  • GH_REPOSIOGHIOGHIOGHIOGHIONAL: Иметь значение имени вашего репозитория GitHub, то есть org-name/refo-name
  • Gh_runner_token: имел значение токена Runner Github, который вы создали в предыдущем разделе. Мы настоятельно рекомендуем использовать переменную среды типа секрета типа.

Дайте свое приложение имя, то есть GH-SALLOSHED-Runner и нажмите Создать приложение

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

Ваш GitHub Actions Apcess App Runner теперь развернут и работает. В следующем разделе мы разверним Привет мир! Действия GitHub Рабочий процесс, выполняющий на нашем самосоведующем бегун.

Запустите рабочие процессы GitHub Actions, используя самосоведуемый бегун GitHub

Выполнить новый рабочий процесс действий GitHub на самообъективном бегуне GitHub

Если у вас нет рабочего процесса GitHub Actions, в вашем репозитории Git создайте новую папку для хранения нашего рабочего процесса действий GitHub:

mkdir -p github/workflows
cd github/workflows

Создайте новый файл для хранения нашего примера рабочего процесса под названием main.yaml и вставить контент ниже:

name: CI
on: [push]

jobs:
  build:
    runs-on: self-hosted
    steps:
    - run: echo "Hello from Koyeb runner!"

Рабочий процесс выше выполняется на бегун, размещенном на Koyeb и отображение «Привет от Koyeb Runner!» Каждый раз на вашем репозитории происходит толчок.

Чтобы проверить его, совершать и продвигать изменения в ваш хранилище, в Действия Вкладки вашего репозитория на GitHub, вы увидите результат рабочего процесса, выполненный вашим бегуном GitHub, работающий на Koyeb.

Выполните существующий рабочий процесс GitHub Actions на самообъектированном бегунке GitHub

В вашем файле Workflow YAML отредактируйте бежит на Раздел вашего рабочего процесса и установите его значение Самоведящий Чтобы запустить самообъективный бегун GitHub:

name: CI
on: [push]

jobs:
  build:
    runs-on: self-hosted
    ...

В этом руководстве мы продемонстрировали преимущество использования Github Actions Actions Seaveryed Runners и как развернуть их на Koyeb. Если у вас есть какие-либо вопросы или предложения для улучшения этого руководства, Не стесняйтесь добраться до нас на Слабый Отказ

Оригинал: «https://dev.to/koyeb/deploying-github-actions-self-hosted-runners-on-koyeb-3ima»