logo
0
0
WeChat Login

Deployment Scripts

CI

部署脚本仓库,用于管理和执行各类服务的自动化部署。

目录结构

.
├── scripts/              # 部署脚本目录
│   ├── deploy.sh         # 主部署脚本
│   ├── rollback.sh       # 回滚脚本
│   └── health-check.sh   # 健康检查脚本
├── configs/              # 配置文件目录
│   ├── dev.env           # 开发环境配置
│   ├── staging.env       # 预发布环境配置
│   └── production.env    # 生产环境配置
├── .cnb.yml              # CI 流水线配置
├── .cnb/
│   └── tag_deploy.yml    # 部署环境配置
└── README.md

快速开始

前置要求

  • Bash 4.0+
  • SSH 访问权限到目标服务器
  • 必要的环境变量已配置

使用方式

# 部署到开发环境
bash scripts/deploy.sh dev

# 部署到预发布环境
bash scripts/deploy.sh staging

# 部署到生产环境
bash scripts/deploy.sh production

# 健康检查
bash scripts/health-check.sh production

# 回滚
bash scripts/rollback.sh production

环境说明

环境说明触发方式
development开发环境,用于日常开发测试推送代码自动触发
staging预发布环境,用于上线前验证页面点击部署
production生产环境,正式对外服务页面点击部署(需审批)

CI 流水线

本项目配置了 CI 流水线,自动检测 Shell 脚本质量:

  • ShellCheck 静态检查:对仓库内所有 .sh 脚本执行静态分析,检测潜在问题
  • Shell 语法检查:使用 bash -n 验证脚本语法正确性
  • 脚本风格检查:确保脚本符合编码规范

流水线在以下场景自动触发:

  • 推送代码到 main 分支
  • 创建或更新 Pull Request

部署流程

  1. 开发完成后推送代码到 main 分支
  2. CI 流水线自动执行脚本检查
  3. 检查通过后,在仓库页面点击「部署」按钮
  4. 选择目标环境执行部署
  5. 生产环境部署需通过审批流程

脚本编写规范

  • 所有脚本必须以 #!/usr/bin/env bash 开头
  • 使用 set -euo pipefail 确保脚本安全性
  • 函数和变量使用 snake_case 命名
  • 必须包含帮助信息(-h/--help
  • 关键操作需有日志输出
  • 使用颜色区分不同级别的日志信息

相关链接

License

MIT

About

一些部署脚本

Language
Shell100%