| name | deploy |
| source | ../../../../skills/deploy-assistant/SKILL.md |
| source_version | 1.0.0 |
| translation_version | 1.0.0 |
| last_synced | "2026-07-09T00:00:00.000Z" |
| source_hash | fc0996a2853c |
| status | current |
| scope | universal |
| description | [UDS] 无 CI/CD 平台环境下的可靠部署指引(不依赖 GitHub Actions / GitLab CI)。
Use when: deploying to VPS, air-gapped servers, or environments without CI/CD infrastructure.
Keywords: deployment, no-cicd, shell script, blue-green, smoke test, rollback, 无CI/CD, 部署.
|
| allowed-tools | Read, Bash(cat VERSION:*), Bash(git describe:*), Bash(which nginx:*), Bash(which rsync:*) |
| argument-hint | [项目类型: node/python/docker/go] |
无 CI/CD 部署助手
语言: English | 简体中文
引导无 CI/CD 平台环境下的可靠部署,采用三层架构:防错、验证、快速恢复。
三层部署架构
Layer 1:防止错误部署 Layer 2:验证正确性 Layer 3:快速恢复
set -euo pipefail Smoke Test + /health Blue-Green 切换
版本 tag 强制 版本号比对 rollback.sh < 30s
deploy.lock 并发守卫 验证失败自动回滚
引导式问答
| 问题 | 选项 | 影响 |
|---|
| 项目类型 | node / python / go / docker | 构建命令 |
| 部署目标 | SSH+rsync / Docker Compose | 传输方式 |
| Blue-Green 支持 | yes / no | rollback.sh 是否生成 |
| 健康检查 URL | URL 输入 | verify.sh 目标 |
| 版本来源 | VERSION 文件 / package.json / git tag | 版本比对逻辑 |
生成的脚本组
deploy.sh — 主要部署脚本
#!/usr/bin/env bash
set -euo pipefail
LOCK_FILE="/tmp/deploy.lock"
trap "rm -f $LOCK_FILE" EXIT
if [ -f "$LOCK_FILE" ]; then
echo "❌ 已有部署进行中(PID: $(cat $LOCK_FILE))"
exit 1
fi
echo $$ > "$LOCK_FILE"
CURRENT_TAG=$(git describe --exact-match --tags HEAD 2>/dev/null || echo "")
if [ -z "$CURRENT_TAG" ]; then
echo "❌ HEAD 没有版本 tag。请执行:git tag vX.Y.Z && git push --tags"
1
rsync -avz --delete ./dist/ {USER}@{SERVER}:/app/
./verify.sh || { ; ./rollback.sh; 1; }
>> /var/log/deployments.jsonl