Перейти к содержанию
zoryn/ maintainer-assistant

zoryn build

Локальная или удалённая сборка hasher'ом. Управляется ~/.zoryn и конфигами билдеров в ~/.config/zoryn/builders.d/.

Использование

zoryn build [-v] [-l dir] [-C dir] [-d] [-r|--rebuild] [-b pattern] [-a arch]
            [-B branch] [-p] [-s] [--fail-if-busy] [--skip-busy] [--top]
            [--skip-check[=LIST]] [--batch-pkgs=PKGS]
            [--section=SECTION] [--rpmbuild-args=ARGS]

Читает команду сборки из ~/.zoryn или конфигурации билдера. Поддерживает локальные и удалённые билдеры из ~/.config/zoryn/builders.d/.

Перед сборкой zoryn проверяет, что allowed_mountpoints и allowed_devices билдера (из hasher-priv) включают все mountpoints, указанные в команде сборки (--mountpoint=…). Если записи отсутствуют, сборка останавливается с инструкцией по исправлению.

Если у пакета есть batch-конфигурация в .gear/version-up (specsubst с несколькими значениями), сборка запускается для каждого значения.

По умолчанию вывод идёт только в лог-файл (тихий режим). Используйте -v для вывода на экран.

Опции

  • -v, --verbose — вывод сборки на экран (дополнительно к лог-файлу).
  • -l, --log-dir <dir> — сохранять логи в указанный каталог вместо .gear/.
  • -C <dir> — сменить каталог перед запуском.
  • -d, --debug — отладочный вывод.
  • -b, --builder <pattern> — выбрать билдеры по имени или паттерну (см. Паттерны билдеров).
  • -a, --arch <arch> — выбрать билдер по архитектуре (через запятую для нескольких).
  • -B, --branch <branch> — выбрать билдер по ветке (через запятую).
  • -p, --parallel — параллельная сборка при нескольких билдерах.
  • -s, --sequential — последовательная сборка (переопределяет parallel = on).
  • --fail-if-busy — завершить с ошибкой, если билдер занят (по умолчанию: ждать).
  • --skip-busy — пропускать занятые билдеры без ошибки.
  • -r, --rebuild — использовать hsh-rebuild вместо hsh.
  • --top — интерактивный TUI для мониторинга (в стиле htop).
  • --skip-check[=LIST] — пропустить проверки (через запятую). Значения: rpmbuild, имена инструментов (sisyphus_check), all.
  • --batch-pkgs=PKGS — собрать только указанные batch-значения.
  • --no-python-auto-deps — отключить автообновление pyproject_deps.json.
  • --section <SECTION> — запуск конкретной секции rpmbuild в существующем chroot. Значения: prep, build, install, check, bb (alias pkgbinary; только упаковка, rpm), ba (alias pkgall; только упаковка, src.rpm + rpm).
  • --rpmbuild-args <ARGS> — дополнительные аргументы rpmbuild (требует --section).

TUI-режим (--top)

Интерактивный интерфейс:

  • Таблица статуса билдеров с текущими этапами.
  • Панель лога с прокруткой (Up/Down, PgUp/PgDn, Home/End, колесо мыши).
  • Поиск по regex (/, n/N — след./пред.).
  • Постоянная история поиска: Up/Down или Ctrl+R в строке поиска.
  • TAB — переключение билдеров, c — отмена, r — перезапуск.
  • Требует ocaml-lambda-term-devel.

Примеры

zoryn build                              # локальная сборка по ~/.zoryn
zoryn build -v                           # сборка с выводом на экран
zoryn build --builder=shell64            # на указанном билдере
zoryn build --builder=shell32,shell64    # на нескольких билдерах
zoryn build --arch=aarch64               # на ARM64 билдере
zoryn build --branch=p11                 # для p11 (ждёт, если занят)
zoryn build -b @all                      # на всех билдерах
zoryn build -b @all -p                   # параллельно на всех
zoryn build -b @all --arch=x86_64        # на всех x86_64
zoryn build -b @all --top                # интерактивный TUI
zoryn build -b @all,^local               # все, кроме local
zoryn build -b @host:basalt              # все билдеры на basalt
zoryn build --section check              # %check в существующем chroot
zoryn build --section build -b arm-server  # %build на конкретном билдере
zoryn build --section bb                 # только упаковка (rpm)
zoryn build --section ba                 # только упаковка (src.rpm + rpm)

Паттерны билдеров

Флаг -b поддерживает паттерны для гибкого выбора:

ПаттернЗначение
@allВсе настроенные билдеры
@host:basaltВсе билдеры на хосте basalt
@host:basalt[2-5]Билдеры на basalt с номером hasher 2–5
local[1-3]Билдеры local1, local2, local3
@all,^localВсе, кроме local
@all,^@host:basaltВсе, кроме билдеров на basalt
@host:basalt,^@host:basalt[4-5]Билдеры на basalt, кроме номеров 4–5

Префикс @ — для селекторов, ^ — для исключений. Несколько паттернов через запятую — включения объединяются, затем вычитаются исключения. Работают вместе с --arch / --branch (пересечение).