feature test

This commit is contained in:
paltovkone
2026-03-10 08:35:21 +04:00
parent b4fd2f4739
commit 090b85e756

104
README.md
View File

@ -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 `<package>/`
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 | имя репозитория |