78 lines
3.1 KiB
Markdown
78 lines
3.1 KiB
Markdown
# nakolenke debian packages
|
||
|
||
Репозиторий для сборки и публикации `.deb`-пакетов в [Gitea Package Registry](https://git.nakolenke.org/nakolenke-pub/-/packages).
|
||
|
||
## Структура
|
||
|
||
```
|
||
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
|
||
└── <другой пакет>/
|
||
└── ...
|
||
```
|
||
|
||
## Добавление нового пакета
|
||
|
||
Создать директорию с именем пакета и следующими файлами:
|
||
|
||
**`Makefile`** — параметры сборки:
|
||
```makefile
|
||
VERSION = 1.2.3
|
||
IMAGE = debian:bookworm-slim # docker-образ для сборки
|
||
STEPS = env download build publish # этапы, отсутствующий скрипт — пропускается
|
||
```
|
||
|
||
**`nfpm.yaml`** — конфигурация пакета, переменная `${VERSION}` подставляется автоматически из окружения.
|
||
|
||
**`scripts/`** — скрипты выполняются последовательно внутри docker-контейнера (`IMAGE` из Makefile). Каждый скрипт получает переменные окружения:
|
||
|
||
| Переменная | Описание |
|
||
|---|---|
|
||
| `PACKAGE` | имя пакета (имя директории) |
|
||
| `VERSION` | версия из Makefile |
|
||
| `G_URL` | базовый URL Gitea |
|
||
| `G_OWNER` | owner (org или user) |
|
||
| `G_REPO` | имя репозитория |
|
||
| `G_TOKEN` | токен публикации (из secrets) |
|
||
|
||
Рабочая директория внутри контейнера — `/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 | имя репозитория | |