No description
Find a file
2026-07-09 09:03:10 +03:00
.forgejo/workflows Исправить ldflags: добавить потерянный -X перед version.commit в сборке SFTPGo 2026-07-09 09:03:10 +03:00
docs Добавить режим latest: автоопределение последней версии и пропуск сборки при наличии бинарника в реестре 2026-07-09 08:32:37 +03:00

Документация по пайплайнам сборки (bin_build)

В этом каталоге находится детальное описание каждого CI/CD пайплайна, определённого в .forgejo/workflows/.

Пайплайн Файл workflow Документация Что собирает
Build Sovereign Caddy (with L4) build-caddy-local.yml build-caddy-local.md Кастомный Caddy с плагином L4
Build and Push SFTPGo build-sftpgo.yml build-sftpgo.md Статический бинарник SFTPGo
Build and Push Webhook build-webhook.yml build-webhook.md Статический бинарник Webhook

Общие принципы

Все пайплайны в этом репозитории работают по единой схеме:

  1. Ручной запуск (workflow_dispatch) — запуск выполняется оператором через интерфейс Forgejo с указанием версии/тега для сборки. По умолчанию параметр равен latest.
  2. Режим latest — если указано latest, пайплайн сам определяет последнюю версию, запрашивая теги из внутреннего Gitзеркала (git ls-remote --tags) и выбирая старший семантический тег (sort -V | tail -1). Если указан конкретный тег — используется он.
  3. Проверка наличия в реестре — перед сборкой пайплайн проверяет, существует ли уже бинарник этой версии в Forgejo Registry (HEADзапрос). Если бинарник уже загружен — пайплайн завершается успешно без сборки (не ошибка).
  4. Изоляция в Dockerконтейнере — сборка идёт в официальном образе (caddy:builder или golang:alpine).
  5. Доверие к внутреннему CA — корневой сертификат скачивается с https://172.20.0.1:9000/roots.pem и используется как для Git, так и для HTTPSзапросов к Forgejo. Тот же сертификат применяется при запросе тегов и проверке реестра.
  6. Использование внутренних зеркал — исходники и модули берутся не из публичных источников, а с git.yadr00.internal и через локальный Athensкэш (GOPROXY=http://172.20.5.17:10001,direct).
  7. Отключение GOSUMDBGOSUMDB=off отключает проверку сумм модулей через sum.golang.org.
  8. Статическая сборка — где возможно, используется CGO_ENABLED=0, чтобы бинарник работал на любом Linux/amd64 без внешних библиотек.
  9. Публикация в Forgejo Registry — готовый бинарник загружается через curl --upload-file в genericреестр по пути https://git.yadr00.internal/api/packages/Build/generic/<name>/<version>/<file> с авторизацией по секрету UPLOAD_TOKEN.