# 自动化部署与 CICD 流水线脚本 **Repository Path**: script-construction/Automated-Deployment-and-CICD-Pipeline-Scripts ## Basic Information - **Project Name**: 自动化部署与 CICD 流水线脚本 - **Description**: 本项目是一个纯Bash Shell实现的自动化部署与CI/CD流水线系统,支持多语言项目(Java/Python/Node.js/Go/静态文件)的自动构建、Docker容器化部署、健康检查、版本回滚和告警通知。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-19 - **Last Updated**: 2026-05-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 自动化部署与CI/CD流水线脚本系统 ## 版本信息 - 版本号: V1.0.0 - 作者: wangfendashazi - 创建日期: 2026-05-17 - 语言: Bash Shell 4.4+ - 许可证: 专有软件 ## 项目简介 本项目是一个纯Bash Shell实现的自动化部署与CI/CD流水线系统,支持多语言项目(Java/Python/Node.js/Go/静态文件)的自动构建、Docker容器化部署、健康检查、版本回滚和告警通知。 ## 系统要求 - 操作系统: CentOS 7+, Ubuntu 18.04+, Debian 10+, RHEL 7+, Fedora 35+ - Bash版本: >= 4.4 - 依赖工具: git, docker, docker-compose, curl, wget, jq, tar, gzip, openssl ## 快速开始 ### 1. 初始化系统环境 ```bash cd cicd-script chmod +x cicd.sh scripts/*.sh ./cicd.sh init ``` ### 2. 创建项目配置 ```bash ./cicd.sh create-project ``` ### 3. 部署项目 ```bash ./cicd.sh deploy <项目名> --env dev ``` ### 4. 查看状态 ```bash ./cicd.sh status <项目名> ``` ### 5. 回滚版本 ```bash ./cicd.sh rollback <项目名> ``` ## 完整命令列表 | 命令 | 描述 | |------|------| | `--version` | 显示版本信息 | | `--help` | 显示帮助信息 | | `install-deps` | 安装系统依赖 | | `init` | 初始化系统环境 | | `create-project` | 交互式创建新项目配置 | | `list-projects` | 列出所有已配置的项目 | | `deploy <项目名>` | 部署项目 | | `rollback <项目名>` | 回滚项目 | | `status <项目名>` | 查看项目运行状态 | | `logs <项目名>` | 查看项目日志 | | `stop <项目名>` | 停止项目 | | `restart <项目名>` | 重启项目 | | `delete-project <项目名>` | 删除项目配置 | | `export-config <项目名>` | 导出项目配置 | | `import-config <配置文件>` | 导入项目配置 | ## 项目结构 ``` cicd-script/ ├── cicd.sh # 主入口脚本 ├── config/ │ ├── global.conf # 全局配置文件 │ └── projects/ # 项目配置文件 ├── scripts/ │ ├── utils.sh # 通用工具函数 │ ├── log.sh # 日志管理 │ ├── config.sh # 配置管理 │ ├── init.sh # 系统初始化 │ ├── git.sh # Git版本控制 │ ├── build.sh # 项目构建 │ ├── docker.sh # Docker管理 │ ├── deploy.sh # 核心部署 │ ├── rollback.sh # 版本回滚 │ ├── healthcheck.sh # 健康检查 │ ├── notification.sh # 告警通知 │ └── env.sh # 多环境管理 ├── templates/ │ ├── Dockerfile.java # Java Dockerfile模板 │ ├── Dockerfile.python # Python Dockerfile模板 │ ├── Dockerfile.node # Node.js Dockerfile模板 │ ├── Dockerfile.go # Go Dockerfile模板 │ └── docker-compose.tpl # Docker Compose模板 ├── logs/ # 日志目录 ├── backups/ # 备份目录 └── versions/ # 版本历史目录 ``` ## 部署选项 - `--env <环境名>`: 指定部署环境(dev/test/staging/prod) - `--force-build`: 强制重新构建镜像 - `--skip-tests`: 跳过自动化测试阶段 - `--skip-healthcheck`: 跳过健康检查阶段 - `--no-backup`: 不创建版本备份 - `--verbose`: 显示详细输出 ## 支持的项目类型 - Java/Spring Boot (Maven/Gradle) - Python/Django/Flask - Node.js/Express/Vue (npm/yarn/pnpm) - Go - 静态文件 (Nginx) ## 部署流程 1. 部署前检查(系统状态、依赖、配置合法性) 2. 加载项目配置和环境变量 3. 创建版本备份 4. 拉取最新代码 5. 执行项目构建和测试 6. 构建Docker镜像 7. 停止旧版本容器 8. 启动新版本容器 9. 执行健康检查 10. 健康检查失败自动回滚 11. 发送部署结果通知 ## 测试方法 ### 基础功能测试 ```bash ./cicd.sh --version ./cicd.sh --help ./cicd.sh init ./cicd.sh list-projects ``` ### 配置管理测试 ```bash ./cicd.sh create-project ./cicd.sh export-config example > example_backup.conf ./cicd.sh import-config example_backup.conf ``` ### 部署流程测试(需要Docker环境和Git仓库) ```bash ./cicd.sh deploy example --env dev --skip-tests --verbose ./cicd.sh status example ./cicd.sh logs example ./cicd.sh restart example ./cicd.sh stop example ./cicd.sh rollback example ``` ## 安全说明 - 所有脚本启用 `set -euo pipefail` 严格模式 - 敏感配置(密码、密钥)建议通过环境变量注入 - 日志文件建议定期轮转和归档 - 生产环境部署前请务必在测试环境验证 ## 软著申请注意事项 1. 本代码为独立原创编写,满足原创性要求 2. 所有文件包含完整的版本信息和作者信息 3. 代码结构模块化清晰,注释详细完整 4. 实现了说明书中的所有核心功能 5. 建议提交时保留所有注释以展示代码可读性