feature test
This commit is contained in:
104
README.md
104
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/
|
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 | имя репозитория |
|
||||||
Reference in New Issue
Block a user