docs: update readme
This commit is contained in:
@@ -14,40 +14,64 @@
|
|||||||
cargo install --path .
|
cargo install --path .
|
||||||
```
|
```
|
||||||
|
|
||||||
Требуется Rust 1.88+. Кроссплатформенно: Windows (MSVC), Linux, macOS.
|
Бинарник называется **`xd`**. Требуется Rust 1.88+. Кроссплатформенно:
|
||||||
|
Windows (MSVC), Linux, macOS.
|
||||||
|
|
||||||
## Быстрый старт
|
## Команды
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
xboct-deploy --list # показать проекты из конфига
|
xd list # показать проекты из конфига
|
||||||
xboct-deploy --list-servers # показать серверы из конфига
|
xd list-servers # показать серверы из конфига
|
||||||
xboct-deploy --pick # интерактивно выбрать проект (нечёткий поиск)
|
xd pick # интерактивно выбрать проект (нечёткий поиск)
|
||||||
xboct-deploy --dry-run demo # напечатать план деплоя без выполнения
|
xd deploy my-node-app # задеплоить проект my-node-app
|
||||||
xboct-deploy demo # задеплоить проект demo
|
xd deploy # задеплоить проект текущей папки (workdir == cwd)
|
||||||
xboct-deploy --this # задеплоить проект текущей папки (глобальный конфиг)
|
xd --dry-run deploy my-node-app # напечатать план деплоя без выполнения
|
||||||
|
xd edit-config # открыть глобальный конфиг в $EDITOR
|
||||||
|
xd # статус: какой проект соответствует текущей папке
|
||||||
|
# (вне проекта — список проектов из конфига)
|
||||||
```
|
```
|
||||||
|
|
||||||
Вывод:
|
Глобальные флаги:
|
||||||
|
|
||||||
```txt
|
```txt
|
||||||
deploying 'demo'
|
-c, --config <PATH> явный путь к конфигу (работает и внутри подкоманд)
|
||||||
|
-g, --global использовать только глобальный конфиг (конфликтует с -c)
|
||||||
|
--dry-run печать плана без выполнения; НЕ глобальный — ставится
|
||||||
|
до подкоманды: `xd --dry-run deploy name`
|
||||||
|
```
|
||||||
|
|
||||||
|
`xd deploy` без имени ищет проект, чей `workdir` совпадает с текущей папкой,
|
||||||
|
и падает с ошибкой, если такого нет. `xd pick` требует реальный терминал —
|
||||||
|
в скриптах используйте `xd list`.
|
||||||
|
|
||||||
|
Вывод деплоя:
|
||||||
|
|
||||||
|
```txt
|
||||||
|
[Git] on branch 'main' ✓
|
||||||
|
deploying 'my-node-app'
|
||||||
[Local] running: npm run build... Success! (1.2s)
|
[Local] running: npm run build... Success! (1.2s)
|
||||||
[SFTP] transferring dist to /var/www/pages... Done! (14 file(s), 231.5 KiB) (829ms)
|
connecting...
|
||||||
|
[SFTP] transferring dist to /var/www/pages/my-node-app... Done! (14 file(s), 231.5 KiB) (829ms)
|
||||||
[Remote] running: pm2 restart pages... Success! (102ms)
|
[Remote] running: pm2 restart pages... Success! (102ms)
|
||||||
|
[LocalAfter] running: curl -s -X POST https://example.com/hook... Success! (45ms)
|
||||||
Deploy successful! (total 2.3s)
|
Deploy successful! (total 2.3s)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Строка `[Git]` появляется только при заданном `branch`, `connecting...` — перед
|
||||||
|
первым SSH-шагом (sync/remote), `[LocalAfter]` — шаги `local_after`.
|
||||||
|
|
||||||
## Конфигурация
|
## Конфигурация
|
||||||
|
|
||||||
Файл ищется по цепочке:
|
Файл ищется по цепочке:
|
||||||
|
|
||||||
1. `--config PATH`, если указан явно;
|
1. `-c/--config PATH`, если указан явно (конфликтует с `-g`);
|
||||||
2. `./deploy.toml` в текущей папке — удобно держать рядом с проектом и в тестах;
|
2. `./deploy.toml` в текущей папке — удобно держать рядом с проектом и в тестах;
|
||||||
3. глобальный `~/.config/xboct-deploy/deploy.toml` — запуск «из любой папки».
|
3. глобальный `~/.config/xboct-deploy/deploy.toml` — запуск «из любой папки».
|
||||||
|
|
||||||
`--this` деплоит проект, чей `workdir` совпадает с текущей папкой; конфиг
|
Флаг `-g/--global` исключает шаг 2: используется только глобальный конфиг.
|
||||||
ищется по обычной цепочке, так что временный локальный `./deploy.toml`
|
Деплой проекта текущей папки (`xd deploy` без имени) ищет конфиг по этой же
|
||||||
переопределяет глобальный — создали файл, задеплоились, удалили.
|
цепочке, так что временный локальный `./deploy.toml` переопределяет глобальный —
|
||||||
|
создали файл, задеплоились, удалили.
|
||||||
|
|
||||||
Схема — **один проект = один блок**, все параметры точечными ключами:
|
Схема — **один проект = один блок**, все параметры точечными ключами:
|
||||||
|
|
||||||
@@ -161,6 +185,10 @@ export DB_URL=postgres://localhost/app
|
|||||||
## Разработка
|
## Разработка
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
just test # fmt + clippy -D warnings + cargo test
|
just test # fmt + clippy -D warnings + cargo test
|
||||||
just run # деплой из test/deploy.toml (в git не входит)
|
just build # cargo build
|
||||||
|
just install # cargo install --path . (бинарник xd)
|
||||||
|
just run # деплой проекта github-tracker из test/deploy.toml (в git не входит)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Схема деплоя и планы — в `docs/`, текущие задачи — в `backlog.md`.
|
||||||
|
|||||||
Reference in New Issue
Block a user