diff --git a/.gitea/workflows/deploy-admin.yml b/.gitea/workflows/deploy-admin.yml index 562274b..8379764 100644 --- a/.gitea/workflows/deploy-admin.yml +++ b/.gitea/workflows/deploy-admin.yml @@ -111,80 +111,86 @@ jobs: echo "压缩完成: $(ls -lh admin-dist.tar.gz)" - name: 🚀 部署到服务器 - uses: appleboy/ssh-action@v1.0.0 - with: - host: ${{ secrets.HOST }} - username: ${{ secrets.USERNAME }} - key: ${{ secrets.SSH_KEY }} - port: ${{ secrets.PORT }} - script: | - # 设置变量 - ADMIN_DIR="/home/gitea/www/photography-admin" - TEMP_DIR="/tmp/photography-admin-deploy" + run: | + # 设置 SSH 环境 + export SSHPASS=${{ secrets.ALIYUN_PWD }} + + # 设置变量 + ADMIN_DIR="/home/gitea/www/photography-admin" + + echo "🚀 开始部署管理后台..." + + # 部署到服务器 + sshpass -e ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 ${{ secrets.ALIYUN_USER_NAME }}@${{ secrets.ALIYUN_IP }} " + set -e + echo '🚀 开始部署管理后台...' - echo "🚀 开始部署管理后台..." + # 确保目录存在 + mkdir -p $ADMIN_DIR - # 创建临时目录 - mkdir -p "$TEMP_DIR" - - # 快速部署:跳过备份以提高速度 - echo "🚀 部署新版本..." - rm -rf "$ADMIN_DIR"/* - cp -r "$TEMP_DIR"/* "$ADMIN_DIR/" 2>/dev/null || true + # 快速部署:清空旧文件 + rm -rf $ADMIN_DIR/* # 设置权限 - chown -R gitea:gitea "$ADMIN_DIR" - chmod -R 755 "$ADMIN_DIR" - find "$ADMIN_DIR" -type f \( -name "*.html" -o -name "*.js" -o -name "*.css" -o -name "*.json" \) -exec chmod 644 {} \; + chown -R gitea:gitea $ADMIN_DIR + chmod -R 755 $ADMIN_DIR - # 重新加载 Caddy - sudo systemctl reload caddy - - echo "✅ 管理后台部署完成!" - echo "📊 部署统计:" - echo "文件数量: $(find $ADMIN_DIR -type f | wc -l)" - echo "目录大小: $(du -sh $ADMIN_DIR | cut -f1)" + echo '✅ 管理后台部署完成!' + " - name: 📤 上传构建产物 - uses: appleboy/scp-action@v0.1.4 - with: - host: ${{ secrets.HOST }} - username: ${{ secrets.USERNAME }} - key: ${{ secrets.SSH_KEY }} - port: ${{ secrets.PORT }} - source: admin/admin-dist.tar.gz - target: /tmp/photography-admin-deploy/ - strip_components: 1 + run: | + export SSHPASS=${{ secrets.ALIYUN_PWD }} + + # 上传文件到服务器 + sshpass -e scp -o StrictHostKeyChecking=no -o ConnectTimeout=10 admin/admin-dist.tar.gz ${{ secrets.ALIYUN_USER_NAME }}@${{ secrets.ALIYUN_IP }}:/tmp/ + + # 解压并部署 + sshpass -e ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 ${{ secrets.ALIYUN_USER_NAME }}@${{ secrets.ALIYUN_IP }} " + set -e + ADMIN_DIR='/home/gitea/www/photography-admin' + + echo '📦 正在解压文件...' + mkdir -p /tmp/admin-deploy + tar -xzf /tmp/admin-dist.tar.gz -C /tmp/admin-deploy/ + + echo '🚀 正在部署文件...' + cp -r /tmp/admin-deploy/* $ADMIN_DIR/ + + # 清理临时文件 + rm -rf /tmp/admin-deploy /tmp/admin-dist.tar.gz + + echo '✅ 文件部署完成!' + " - name: 🔍 健康检查 - uses: appleboy/ssh-action@v1.0.0 - with: - host: ${{ secrets.HOST }} - username: ${{ secrets.USERNAME }} - key: ${{ secrets.SSH_KEY }} - port: ${{ secrets.PORT }} - script: | - echo "🔍 执行健康检查..." + run: | + export SSHPASS=${{ secrets.ALIYUN_PWD }} + + sshpass -e ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 ${{ secrets.ALIYUN_USER_NAME }}@${{ secrets.ALIYUN_IP }} " + set -e + echo '🔍 执行健康检查...' # 检查文件是否存在 - if [ -f "/home/gitea/www/photography-admin/index.html" ]; then - echo "✅ index.html 文件存在" + if [ -f '/home/gitea/www/photography-admin/index.html' ]; then + echo '✅ index.html 文件存在' else - echo "❌ index.html 文件不存在" + echo '❌ index.html 文件不存在' exit 1 fi # 快速检查 sleep 3 if curl -f -s -o /dev/null https://admin.photography.iriver.top; then - echo "✅ 管理后台访问正常" + echo '✅ 管理后台访问正常' else - echo "⚠️ 管理后台访问异常,请检查 Caddy 配置" + echo '⚠️ 管理后台访问异常,请检查 Caddy 配置' fi # 重新加载 Caddy sudo systemctl reload caddy - echo "🔄 Caddy 配置已重新加载" + echo '🔄 Caddy 配置已重新加载' + " security-scan: name: 🔒 安全扫描