From 090b85e75667c92fe1a72d360fbb93236e678b54 Mon Sep 17 00:00:00 2001 From: paltovkone Date: Tue, 10 Mar 2026 08:35:21 +0400 Subject: [PATCH] feature test --- README.md | 104 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 65 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index a383fcb..d81d41c 100644 --- a/README.md +++ b/README.md @@ -1,52 +1,78 @@ -# packages +# nakolenke debian packages -Gitea Actions-based Debian package builder for custom apt repository. +Репозиторий для сборки и публикации `.deb`-пакетов в [Gitea Package Registry](https://git.nakolenke.org/nakolenke-pub/-/packages). -## Structure +## Структура ``` -packages/ - ├── .gitea/workflows/build.yml # CI pipeline - ├── scripts/publish.sh # manual publish helper - └── v2ray/ - ├── nfpm.yaml # package definition - └── scripts/ - ├── postinstall.sh - └── preremove.sh +repo/ +├── .gitea/workflows/ +│ └── build-packages.yml # CI/CD пайплайн +├── v2ray/ +│ ├── Makefile # параметры пакета +│ ├── nfpm.yaml # конфиг сборки .deb +│ └── scripts/ +│ ├── env.sh # установка зависимостей +│ ├── download.sh # скачивание артефактов +│ ├── build.sh # сборка .deb через nfpm +│ └── publish.sh # публикация в registry +└── <другой пакет>/ + └── ... ``` -## Usage +## Добавление нового пакета -### Automatic build +Создать директорию с именем пакета и следующими файлами: -Push changes to `v2ray/` directory → triggers build automatically. - -### Manual build with specific version - -Gitea → Actions → Build packages → Run workflow → specify version. - -### Add repository on servers - -```bash -curl https://git.nakolenke.org/api/packages/nakolenke-pub/debian/repository.key \ - -o /etc/apt/keyrings/nakolenke.asc - -echo "deb [signed-by=/etc/apt/keyrings/nakolenke.asc] \ - https://git.nakolenke.org/api/packages/nakolenke-pub/debian trixie main" \ - > /etc/apt/sources.list.d/nakolenke.list - -apt update -apt install v2ray +**`Makefile`** — параметры сборки: +```makefile +VERSION = 1.2.3 +IMAGE = debian:bookworm-slim # docker-образ для сборки +STEPS = env download build publish # этапы, отсутствующий скрипт — пропускается ``` -## Secrets +**`nfpm.yaml`** — конфигурация пакета, переменная `${VERSION}` подставляется автоматически из окружения. -Set `GITEA_TOKEN` in repository secrets (Settings → Secrets). -Token needs `package` scope. +**`scripts/`** — скрипты выполняются последовательно внутри docker-контейнера (`IMAGE` из Makefile). Каждый скрипт получает переменные окружения: -## Adding new package +| Переменная | Описание | +|---|---| +| `PACKAGE` | имя пакета (имя директории) | +| `VERSION` | версия из Makefile | +| `G_URL` | базовый URL Gitea | +| `G_OWNER` | owner (org или user) | +| `G_REPO` | имя репозитория | +| `G_TOKEN` | токен публикации (из secrets) | -1. Create directory `/` -2. Add `nfpm.yaml` -3. Add `scripts/postinstall.sh` and `scripts/preremove.sh` -4. Add job to `.gitea/workflows/build.yml` +Рабочая директория внутри контейнера — `/pkg`. + +## Запуск + +**Actions → Build & Publish Packages → Run workflow** + +- оставить поле пустым — собираются все пакеты +- указать через запятую — только выбранные: `v2ray,xray` + +## Подключение apt-репозитория + +```sh +curl -fsSL "https://git.nakolenke.org/api/packages/nakolenke-pub/debian/repository.key" \ + | gpg --dearmor -o /etc/apt/keyrings/nakolenke.gpg + +echo "deb [signed-by=/etc/apt/keyrings/nakolenke.gpg] \ + https://git.nakolenke.org/api/packages/nakolenke-pub/debian bookworm main" \ + > /etc/apt/sources.list.d/nakolenke.list + +apt-get update +``` + +## Secrets и Variables + +Настраиваются в **Settings → Secrets / Variables → Actions**: + +| Имя | Тип | Описание | +|---|---|---| +| `G_TOKEN` | secret | токен с правом package:write | +| `G_URL` | variable | `https://git.nakolenke.org` | +| `G_OWNER` | variable | `nakolenke-pub` | +| `G_REPO` | variable | имя репозитория | \ No newline at end of file