Облачные раннеры

Облачные раннеры
Update

Облачные раннеры значительно упрощают выполнение CI/CD, т.к. они:

  1. Не требуют скачивания, настройки или регистрации.
  2. Не требуют конфигурирования ПК пользователя или виртуального окружения, настройки доступов, установки дополнительного ПО.
  3. Не требуют указания в лейбле раннера в .yaml-файле рабочего процесса ссылки на нужный образ контейнера из реестра Docker Hub.

Подключение облачного раннера

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

runs-on: ubuntu-cloud-runner

Конфигурационные файлы рабочих процессов GitVerse Actions должны быть написаны в синтаксисе YAML и располагаться в .gitverse/workflows/ вашего репозитория:

  • сохраните файл с расширением .yaml;
  • поместите его в .gitverse/workflows/ в вашем репозитории (например, .gitverse/workflows/demo.yaml).

Создание .yaml-файла из шаблона

Если в вашем репозитории еще не был настроен CI/CD, то можно из шаблона создать .yaml‑файл для работы с облачным раннером.

Для создания .yaml-файла рабочего процесса из шаблона перейдите в профиль репозитория и далее:

  1. Выберите вкладку CI/CD.
  2. Нажмите Попробовать.

Пример:

Подробнее см. в разделе Облачные раннеры, пример.

Переход к yaml-файлу со страницы результата работы

  1. Чтобы посмотреть результат работы раннера и перейти к yaml-файлу рабочего процесса, в профиле репозитория > CI/CD выберите отчет по задаче:

    На отобразившейся странице нажмите на ссылку yaml-файла рабочего процесса:

Сборка образа на облачных раннерах

⚠️
  1. После успешного пуша образа меняется файловая система контейнера, пропадают все команды из /usr/bin и на этом контейнере больше нельзя запустить какие либо команды.
  2. Все дополнительные действия необходимо делать в новой задаче.
  3. Если требуется очередность выполнения задач, можно использовать job.<job_id>.needs

Пример использования Kaniko для сборки Docker-образов, который может работать в среде без Docker-демона:

name: Build
on:
  push:
jobs:
  build_update:
    name: Build
    runs-on: ubuntu-cloud-runner
    steps:
      - name: Checkout code
        uses: actions/checkout@v2      
      - name: Login to gitverseRegistry
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.USERNAME }}
          password: ${{ secrets.PASSWORD }}
      - name: Kaniko build and push
        run: |
          /kaniko/executor --context=. --dockerfile=./Dockerfile --destination=<dest_project_name>/test_kaniko:0.0.1

Где <dest_project_name> (строка 18) следует заменить на имя владельца репозитория.

Запуск в публичных и приватных репозиториях
New

Облачные раннеры могут использоваться одинаково как в публичных, так и в приватных репозиториях без ущерба безопасности или функциональности.

Для работы с публичными и приватными репозиториями необходимо использовать действие actions/checkout (строка 9), чтобы обеспечить извлечение кода облачным раннером. Ниже приведен пример:

name: Облачный раннер в приватном репозитории
on:
  push:
jobs:
  build:
    runs-on: ubuntu-cloud-runner
    steps:
      - name: Checkout private code
        uses: actions/checkout@v3
      - name: Show README
        run: cat README.md || echo "Файл README.md отсутствует или пустой" 
      - name: Build application
        run: echo "Сборка приложения из приватного репозитория"

Ограничения облачных раннеров
Update

⚠️
  1. Каждая отдельная задача выполняется облачным раннером не более 15 минут.
  2. Облачные раннеры имеют ежемесячный лимит сборочного времени: 1000 минут в месяц.
  3. Один пользователь может использовать не более двух облачных раннеров одновременно.

Проверка оставшегося лимита

Для проверки оставшегося лимита на использование облачных раннеров перейдите в профиль репозитория > Настройки > Раннеры > Облачные:

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

  1. Включение/выключение CI/CD.
  2. Вкладка Раннеры в настройках репозитория.
  3. Настройка CI/CD.
  4. Облачные раннеры, пример.
  5. FAQ по GigaIDE Cloud.