Настроить пользовательский (self-hosted) воркер для SourceCraft
Пользовательские (self-hosted) воркеры — личные серверы пользователей, как виртуальные, так и физические, на которых выполняются CI/CD-процессы. В этом случае для процессов будет доступно окружение пользовательского сервера.
На пользовательские воркеры не действуют ограничения на объем вычислительных ресурсов, а также не расходуется квота на суммарное время работы CI/CD-процессов.
Подробнее см. Воркеры.
Чтобы настроить пользовательский воркер:
- Подготовьте окружение.
- Создайте конфигурационный файл воркера.
- Запустите воркер.
- Выполните задание на воркере.
См. также:
Подготовьте окружение
-
Создайте персональный токен (PAT) с ролью
Администратор репозиторияи доступом к репозиториям, в которых вы хотите запускать CI/CD-процессы на пользовательском воркере.Важно
Не рекомендуется предоставлять доступ ко всем репозиториям организации.
-
Скачайте исполняемый файл
self-hosted-processorпользовательского воркера для вашей операционной системы и архитектуры:macOS ARM64Linux AMD64Linux ARM64Linux ARMWindows AMD64Скачать исполняемый файл self-hosted-processor для Linux ARM64
Важно
Linux ARM64 является нестандартной платформой для выполнения CI/CD-процессов. Это экспериментальная тестовая версия пользовательского воркера под эту платформу.
Не рекомендуется использовать эту версию в production-окружении.
Скачать исполняемый файл self-hosted-processor для Linux ARM
Важно
Linux ARM является нестандартной платформой для выполнения CI/CD-процессов. Это экспериментальная тестовая версия пользовательского воркера под эту платформу.
Не рекомендуется использовать эту версию в production-окружении.
Скачать исполняемый файл self-hosted-processor для Windows AMD64
Примечание
Исполняемый файл для Windows работает только с набором инструментов MinGW.
См. также Обновить исполняемый файл воркера.
-
В macOS/Linux выдайте разрешения на запуск файла:
chmod +x <путь_к_исполняемому_файлу> -
Добавьте исполняемый файл в
PATH:macOS/LinuxWindowsexport PATH=$PATH:<путь_к_исполняемому_файлу>$env:Path += ";<путь_к_исполняемому_файлу>" -
Посмотрите, какие команды доступны для воркера:
self-hosted-processor run --helpЧтобы посмотреть информацию и доступные параметры для конкретной команды, выполните:
self-hosted-processor <команда> --help
Создайте конфигурационный файл воркера
Вы можете автоматически подготовить конфигурационный файл воркера с помощью команды self-hosted-processor init.
Поддерживаются следующие аргументы:
|
Ключ |
Описание |
Значение по умолчанию |
|
|
Максимальное количество заданий, которые могут параллельно выполняться воркером. |
|
|
|
Путь до директории, в которой будут создаваться временные рабочие директории заданий, выполняемых воркером. |
Директория для временных файлов, например |
|
|
Персональный токен (PAT) для аутентификации в сервисе. С его помощью воркер получает задания, отчитывается о прогрессе, передает в SourceCraft логи и артефакты. |
Не установлено. |
|
|
Список меток воркера. На воркере будут выполняться задания, все метки которых содержатся в метках воркера. Примечание В строковых значениях метки может содержаться ограниченный набор символов: буквы латинского алфавита ( Метка |
|
|
|
Опция для отключения верификации сертификата. Используйте, если на вашем устройстве отсутствует подходящий корневой сертификат (RootCA). |
Отключено. |
Например, сгенерируйте конфигурацию для воркера, который параллельно может выполнять не более 3 заданий с метками 4gb и go-builder:
self-hosted-processor init \
--token <персональный_токен> \
--capacity 3 \
--tags 4gb,go-builder \
> config.yaml
В результате будет создан файл config.yaml с конфигурацией воркера:
executor_type: shell
self_hosted:
max_slots: 3
logger_type: json
logger_level: info
endpoint:
host: ci.sourcecraft.tech
port: 443
ssl_no_verify: false
tags:
- 4gb
- go-builder
auth:
pat: <персональный_токен>
Создайте файл config.yaml со следующей конфигурацией:
executor_type: shell
self_hosted:
# Путь до директории, в которой будут создаваться временные
# рабочие директории заданий, выполняемых воркером.
root_dir: /Users/user1/sourcecraft
# Максимальное количество заданий, которые могут параллельно
# выполняться воркером.
max_slots: 3
logger_type: json
logger_level: info
# Адрес сервиса для получения задач и отправки логов и артефактов.
endpoint:
host: ci.sourcecraft.tech
port: 443
## Чтобы отключить верификацию сертификата, установите true.
ssl_no_verify: false
# Список меток. На воркере будут выполняться задания, все метки
# которых содержатся в метках воркера.
# Поддерживаются буквы латинского алфавита и символы «-», «.» и «_».
# Метка «self-hosted» проставляется автоматически.
tags:
- 4gb
- go-builder
auth:
# Персональный токен для аутентификации в сервисе.
pat: <персональный_токен>
Это конфигурация воркера, который параллельно может выполнять не более 3 заданий с метками 4gb и go-builder и создавать временные рабочие директории по пути /Users/user1/sourcecraft.
Запустите воркер
Выполните команду:
self-hosted-processor run \
--config-path <путь_к_конфигурационному_файлу>
Где --config-path — путь к конфигурационному файлу, созданному ранее. Также поддерживается краткое написание параметра — -c.
Совет
Логи воркера выводятся в стандартный поток вывода. Чтобы записывать логи в файл или передавать в сервис для сбора логов, перенаправьте вывод или используйте пайплайны |.
Выполните задание на воркере
Чтобы запустить CI/CD-процесс на пользовательском воркере, в параметрах рабочего процесса (workflow) или задания (task) укажите runs_on: self-hosted.
Если в task не указан параметр runs_on, по умолчанию будет выставлен параметр из workflow:runs_on.
Пример:
workflows:
my-awesome-workflow:
runs_on: self-hosted
tasks:
- name: self-hosted-task
cubes:
- name: hello
script:
- echo "hello from self-hosted"
- name: self-hosted-go-builder-task
runs_on: [self-hosted, go-builder]
cubes:
- name: hello
script:
- echo "hello from self-hosted go builder"
В этом случае задания из рабочего процесса my-awesome-workflow, если у них не переопределен параметр runs_on, по умолчанию будут выполняться на любом из ваших пользовательских воркеров. А задание self-hosted-go-builder-task будет выполнено только на пользовательском воркере, которому при инициализации была присвоена метка go-builder.
Задать уровень логирования
Чтобы задать уровень логирования воркера, отредактируйте значение поля logger_level в файле config.yaml. Поддерживаются следующие значения:
fatal— вывод только ошибки, которая была залогирована с уровнемfatalи стала причиной падения приложения.error— вывод ошибок, которые могут сигнализировать о проблемах в работе приложения, например: нет возможности подключиться к оркестратору, ошибки сети, недостаточно места на диске и пр.warn— ошибки уровняfatalиerror, а также ошибки, которые могут возникнуть при нормальной работе приложения, например: не получилось создать симлинк при копировании артефакта и пришлось выполнять полноценное копирование, не получилось найти файл.ENVпервого или последнего кубика в задании и пр.info— ошибки уровняfatal,errorиwarn, а также сообщения о том, что происходит в приложении:- запросы на получение заданий (раз в несколько секунд);
- отправка отчетов о статусе задания;
- вывод скрипта и информации о выполняемом шаге.
debug— ошибки уровняfatal,errorиwarn, сообщенияinfo, а также прочая отладочная информация, например значения передающихся между кубиками переменных.
Обновить исполняемый файл воркера
В подразделе Подготовьте окружение представлены ссылки на актуальные версии исполняемых файлов воркера.
Чтобы узнать версию исполняемого файла воркера, установленного в вашем окружении, выполните команду:
self-hosted-processor version
Результат:
<``>SourceCraft<``> Processor
Version: 0.9.1
Build date: 10 June 2025
Target OS: darwin
Target Arch: arm64
Чтобы обновить исполняемый файл воркера, скачайте новый файл и замените старый.