69 lines
1.8 KiB
Markdown
69 lines
1.8 KiB
Markdown
# Deploy To NAS Frontend Implementation Plan
|
|
|
|
> **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
|
|
|
|
**Goal:** 新增一个 Windows 下可双击执行的 `.bat` 一键入口,默认触发前后端打包并部署到 NAS。
|
|
|
|
**Architecture:** 通过 `deploy-to-nas.bat` 作为薄封装入口,把默认参数与可选覆盖参数转交给现有 `deploy.ps1`。BAT 只负责入口体验,不承载核心部署逻辑。
|
|
|
|
**Tech Stack:** Windows CMD, PowerShell, pytest
|
|
|
|
---
|
|
|
|
### Task 1: 新增 BAT 入口脚本
|
|
|
|
**Files:**
|
|
- Create: `deploy/deploy-to-nas.bat`
|
|
- Test: `tests/deploy/test_deploy_to_nas.py`
|
|
|
|
**Step 1: 写失败测试**
|
|
|
|
```python
|
|
def test_bat_dry_run_uses_default_nas_target():
|
|
...
|
|
```
|
|
|
|
**Step 2: 运行测试确认失败**
|
|
|
|
Run: `py -3.12 -m pytest tests/deploy/test_deploy_to_nas.py::test_bat_dry_run_uses_default_nas_target -q`
|
|
Expected: 失败,因为 BAT 文件不存在
|
|
|
|
**Step 3: 最小实现**
|
|
|
|
- 新建 BAT 文件
|
|
- 默认调用 `deploy.ps1`
|
|
- 支持 `--dry-run`
|
|
|
|
**Step 4: 运行测试**
|
|
|
|
Run: `py -3.12 -m pytest tests/deploy/test_deploy_to_nas.py::test_bat_dry_run_uses_default_nas_target -q`
|
|
Expected: 通过
|
|
|
|
### Task 2: 支持参数覆盖
|
|
|
|
**Files:**
|
|
- Modify: `deploy/deploy-to-nas.bat`
|
|
- Test: `tests/deploy/test_deploy_to_nas.py`
|
|
|
|
**Step 1: 写失败测试**
|
|
|
|
```python
|
|
def test_bat_dry_run_accepts_override_arguments():
|
|
...
|
|
```
|
|
|
|
**Step 2: 运行测试确认失败**
|
|
|
|
Run: `py -3.12 -m pytest tests/deploy/test_deploy_to_nas.py::test_bat_dry_run_accepts_override_arguments -q`
|
|
Expected: 失败,因为 BAT 未透传覆盖参数
|
|
|
|
**Step 3: 最小实现**
|
|
|
|
- 按位置参数传递 host、port、username、password、remoteRoot
|
|
- 把 `--dry-run` 透传给 PowerShell
|
|
|
|
**Step 4: 全量测试**
|
|
|
|
Run: `py -3.12 -m pytest tests/deploy/test_deploy_to_nas.py -q`
|
|
Expected: 通过
|