feature test
This commit is contained in:
92
README.md
92
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.
|
||||
**`Makefile`** — параметры сборки:
|
||||
```makefile
|
||||
VERSION = 1.2.3
|
||||
IMAGE = debian:bookworm-slim # docker-образ для сборки
|
||||
STEPS = env download build publish # этапы, отсутствующий скрипт — пропускается
|
||||
```
|
||||
|
||||
### Manual build with specific version
|
||||
**`nfpm.yaml`** — конфигурация пакета, переменная `${VERSION}` подставляется автоматически из окружения.
|
||||
|
||||
Gitea → Actions → Build packages → Run workflow → specify version.
|
||||
**`scripts/`** — скрипты выполняются последовательно внутри docker-контейнера (`IMAGE` из Makefile). Каждый скрипт получает переменные окружения:
|
||||
|
||||
### Add repository on servers
|
||||
| Переменная | Описание |
|
||||
|---|---|
|
||||
| `PACKAGE` | имя пакета (имя директории) |
|
||||
| `VERSION` | версия из Makefile |
|
||||
| `G_URL` | базовый URL Gitea |
|
||||
| `G_OWNER` | owner (org или user) |
|
||||
| `G_REPO` | имя репозитория |
|
||||
| `G_TOKEN` | токен публикации (из secrets) |
|
||||
|
||||
```bash
|
||||
curl https://git.nakolenke.org/api/packages/nakolenke-pub/debian/repository.key \
|
||||
-o /etc/apt/keyrings/nakolenke.asc
|
||||
Рабочая директория внутри контейнера — `/pkg`.
|
||||
|
||||
echo "deb [signed-by=/etc/apt/keyrings/nakolenke.asc] \
|
||||
https://git.nakolenke.org/api/packages/nakolenke-pub/debian trixie main" \
|
||||
## Запуск
|
||||
|
||||
**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 update
|
||||
apt install v2ray
|
||||
apt-get update
|
||||
```
|
||||
|
||||
## Secrets
|
||||
## Secrets и Variables
|
||||
|
||||
Set `GITEA_TOKEN` in repository secrets (Settings → Secrets).
|
||||
Token needs `package` scope.
|
||||
Настраиваются в **Settings → Secrets / Variables → Actions**:
|
||||
|
||||
## Adding new package
|
||||
|
||||
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`
|
||||
| Имя | Тип | Описание |
|
||||
|---|---|---|
|
||||
| `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