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