导航菜单

自动化部署与CI/CD

自动化部署

  • 部署脚本。
  • 环境配置。
  • 版本管理。
#!/bin/bash
# 自动化部署脚本

# 1. 环境变量配置
ENV="production"
APP_PATH="/var/www/app"
BACKUP_PATH="/var/www/backup"
RELEASE_PATH="/var/www/releases"

# 2. 创建备份
backup() {
    echo "Creating backup..."
    TIMESTAMP=$(date +%Y%m%d%H%M%S)
    tar -czf "${BACKUP_PATH}/backup_${TIMESTAMP}.tar.gz" "${APP_PATH}"
}

# 3. 拉取代码
pull_code() {
    echo "Pulling latest code..."
    cd "${APP_PATH}"
    git pull origin master
}

# 4. 安装依赖
install_dependencies() {
    echo "Installing dependencies..."
    cd "${APP_PATH}"
    composer install --no-dev --optimize-autoloader
    npm install --production
    npm run build
}

# 5. 更新数据库
update_database() {
    echo "Updating database..."
    cd "${APP_PATH}"
    php artisan migrate --force
}

# 6. 清理缓存
clear_cache() {
    echo "Clearing cache..."
    cd "${APP_PATH}"
    php artisan config:cache
    php artisan route:cache
    php artisan view:cache
}

# 7. 重启服务
restart_services() {
    echo "Restarting services..."
    sudo systemctl restart php-fpm
    sudo systemctl restart nginx
}

# 8. 主函数
main() {
    backup
    pull_code
    install_dependencies
    update_database
    clear_cache
    restart_services
    echo "Deployment completed successfully!"
}

# 执行主函数
main