Раннеры организации, пример

Раннер организации, пример

Настоящий пример демонстрирует регистрацию и работу одного организации с рабочими процессами двух репозиториев.

Ссылки для скачивания раннеров см. в таблице.

Репозитории из настроящего примера открыты и доступны для импорта:

  1. org_runner_example1 (opens in a new tab).
  2. org_runner_example2 (opens in a new tab).

Структура проекта

  1. Структура проекта с раннером - размещать, регистрировать и запускать раннер можно в любой директории.

  2. Структура репозитория org_runner_example1:

$ tree -a -I .git
.
├── .gitverse
   └── workflows
       └── orgRunnerDemo1.yaml
├── README.md
└── push_commit_to_start_runner.md.md
  1. Структура репозитория org_runner_example2:
$ tree -a -I .git
.
├── .gitverse
   └── workflows
       └── orgRunnerDemo2.yaml
├── README.md
└── push_commit_to_start_runner.md.md

Рабочие процессы репозиториев

orgRunnerDemo1.yaml первого репозитория

name: Organization CI/CD Demo part 1
on:
  push:
jobs:
  build-test:
    name: first repo workflow
    runs-on: org-runner # метка раннера
    steps:
      - name: Display Workflow
        run: echo ${{ gitverse.workflow }}
      - name: Display repository name
        run: echo ${{ gitverse.Repository}}

orgRunnerDemo1.yam2 второго репозитория

name: Organization CI/CD Demo part 2
on:
  push:
jobs:
  build-test:
    name: second repo workflow
    runs-on: org-runner # метка раннера
    steps:
      - name: Display Workflow
        run: echo ${{ gitverse.workflow }}
      - name: Display repository name
        run: echo ${{ gitverse.Repository}}

Подготовительные действия

Включение CI/CD

💡

CI/CD при создании по умолчанию включен (начиная с релиза 15.0.0).

Для включения/выключения CI/CD в профиле вашего репозитория нажмите:

  1. Настройки.
  2. Репозиторий.
  3. CI/CD.
  4. Обновить.

Пример:

Установка docker

См. раздел Установка Docker (Ubuntu).

Подготовка раннера

  1. Скачайте раннер, соответствующий вашей ОС. В данном примере используется act_runner_linux_amd64.

  2. Разместите раннер в любом каталоге.

  3. Передайте права на исполнение:

sudo chmod +x act_runner_linux_amd64

Получение токена раннера организации

Для получения токена регистрации раннера перейдите в профиль организации и далее:

  1. Перейдите в Настройки.
  2. Выберите Раннеры.
  3. Нажмите Добавить раннер.
  4. Скопируйте регистрационный токен.

Регистрация раннера

В команде регистрации раннера замените токен на скопированный в профиле организации:

sudo ./act_runner_linux_amd64 register \
--no-interactive \
--instance https://gitverse.ru/sc \
--token q3l7yDL0mh4gn4Yg3XfxnMuRDqoFEZf3pEr7KUOq \
--name organization-runner-demo \
--labels org-runner
  1. Строка --name organization-runner-demo определит имя раннера, которое можно найти позднее в отчете.
  2. Строка --labels org-runner определит имя метки раннера, которое должно быть так же прописано в рабочем процессе репозитория.

Отобразится ответ вида:

$ sudo ./act_runner_linux_amd64 register \
> --no-interactive \
> --instance https://gitverse.ru/sc \
> --token q3l7yDL0mh4gn4Yg3XfxnMuRDqoFEZf3pEr7KUOq \
> --name organization-runner-demo \
> --labels org-runner
INFO Registering runner, arch=amd64, os=linux, version=3.0.4. 
DEBU Successfully pinged the GitVerse instance server 
INFO Runner registered successfully.

В профиле организации > Настройки > Раннеры отобразится зарегистрированный раннер:

Запуск раннера

Для запуска раннера выполните команду:

sudo ./act_runner_linux_amd64 daemon

Проверка работы раннера в репозиториях организации

Для запуска раннера внесите изменения в репозиторий и отправьте коммит, так как согласно файлам рабочего процесса orgRunnerDemo1.yaml и orgRunnerDemo1.yaml, раннер будет обрабатывать события push (для любого репозитория в организации с меткой org_runner).

  1. Перейдите в профиль первого репозитория > Настройки и выберите последний отчет:

    Из шага Set up job видно, что задачи рабочего процесса orgRunnerDemo1.yaml выполнил наш раннер organization-runner-demo:

  2. Перейдите на в профиль второго репозитория > Настройки и выберите последний отчет:

    Из шага Set up job видно, что задачи рабочего процесса orgRunnerDemo2.yaml выполнил наш раннер organization-runner-demo:

Связанные разделы

  1. Поддерживаемые события раннеров, справочный раздел в Базе знаний.

  2. Раннеры организации, справочный раздел в Базе знаний.