Настроить пользовательский (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
tls: true
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
## Чтобы отключить верификацию сертификата, установите false.
tls: true
# Список меток. На воркере будут выполняться задания, все метки
# которых содержатся в метках воркера.
# Поддерживаются буквы латинского алфавита и символы «-», «.» и «_».
# Метка «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
Чтобы обновить исполняемый файл воркера, скачайте новый файл и замените старый.