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/ repo/
├── .gitea/workflows/build.yml # CI pipeline ├── .gitea/workflows/
── scripts/publish.sh # manual publish helper ── build-packages.yml # CI/CD пайплайн
── v2ray/ ── v2ray/
├── nfpm.yaml # package definition ├── Makefile # параметры пакета
└── scripts/ │ ├── nfpm.yaml # конфиг сборки .deb
── postinstall.sh ── scripts/
└── preremove.sh ├── env.sh # установка зависимостей
│ ├── download.sh # скачивание артефактов
│ ├── build.sh # сборка .deb через nfpm
│ └── publish.sh # публикация в registry
└── <другой пакет>/
└── ...
``` ```
## Usage ## Добавление нового пакета
### Automatic build Создать директорию с именем пакета и следующими файлами:
Push changes to `v2ray/` directory → triggers build automatically. **`Makefile`** — параметры сборки:
```makefile
### Manual build with specific version VERSION = 1.2.3
IMAGE = debian:bookworm-slim # docker-образ для сборки
Gitea → Actions → Build packages → Run workflow → specify version. STEPS = env download build publish # этапы, отсутствующий скрипт — пропускается
### 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
``` ```
## Secrets **`nfpm.yaml`** — конфигурация пакета, переменная `${VERSION}` подставляется автоматически из окружения.
Set `GITEA_TOKEN` in repository secrets (Settings → Secrets). **`scripts/`** — скрипты выполняются последовательно внутри docker-контейнера (`IMAGE` из Makefile). Каждый скрипт получает переменные окружения:
Token needs `package` scope.
## Adding new package | Переменная | Описание |
|---|---|
| `PACKAGE` | имя пакета (имя директории) |
| `VERSION` | версия из Makefile |
| `G_URL` | базовый URL Gitea |
| `G_OWNER` | owner (org или user) |
| `G_REPO` | имя репозитория |
| `G_TOKEN` | токен публикации (из secrets) |
1. Create directory `<package>/` Рабочая директория внутри контейнера — `/pkg`.
2. Add `nfpm.yaml`
3. Add `scripts/postinstall.sh` and `scripts/preremove.sh` ## Запуск
4. Add job to `.gitea/workflows/build.yml`
**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 | имя репозитория |