---
description: 兜底万能配方 —— 各阶段命令全部自定义（artifact 模式仍走 releases 软链原子切换）
applicable: [custom]
requires: []
buildSource: artifact
variables:
  - key: deployRoot
    label: 部署根目录
    default: "/opt/{{project}}"
    required: true
  - key: restartCmd
    label: 重启命令
    default: "echo 请填写重启命令"
    required: true
  - key: healthCmd
    label: 健康检查命令
    default: "true"
    required: false
---

# 自定义脚本（兜底）

再奇葩的部署方式都能跑：填好 deployRoot + 重启命令 + 健康检查即可。
artifact 模式下，引擎会先把产物解压到 `{{deployRoot}}/releases/<ts>` 并把 current 软链原子切到新版本，
然后执行下面的 release 命令（即你的"重启"），最后跑 health。

> 可用内置变量：{{deployRoot}} {{releaseDir}} {{currentLink}} {{server}} {{ts}} {{project}}
> 想完全自己掌控（不要软链 dance），把 target 的 buildSource 改成 `server` 或 `none`。

```bash stage:release on:target
cd {{currentLink}} && {{restartCmd}}
```

```bash stage:health on:target
{{healthCmd}}
```
