Files
Scoring-System/.gitea/workflows/deploy.yaml
爽哒哒 ba71db60bb
All checks were successful
Deploy to Server / deploy (push) Successful in 2s
使用curl下载代码替代git clone避免TLS问题
2026-03-21 00:24:14 +08:00

97 lines
3.6 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: Deploy to Server
on: [push]
jobs:
deploy:
runs-on: ubuntu
steps:
- name: Deploy using SSH
uses: https://gitea.com/actions/appleboy-ssh-action@v1.0.3
with:
host: 6.6.6.66
username: quant
password: 123quant-speed
command: |
TARGET_DIR="/home/quant/scoring-system"
REPO_URL="https://gitea.tangledup-ai.com/quant-speed-AI/Scoring-System"
BRANCH="main"
# 1. 检查用户是否在 docker 组
echo "===== 检查 docker 权限 ====="
if groups | grep -q docker; then
echo "用户已在 docker 组"
DOCKER_CMD="docker"
else
echo "用户不在 docker 组,使用 sudo"
DOCKER_CMD="sudo docker"
fi
# 2. 创建目标目录
echo "===== 创建目标目录: $TARGET_DIR ====="
mkdir -p $TARGET_DIR
# 3. 备份旧数据(如果存在)
echo "===== 备份配置 ====="
if [ -f "$TARGET_DIR/backend/.env" ]; then
cp $TARGET_DIR/backend/.env /tmp/scoring-env-backup 2>/dev/null || true
fi
# 4. 清理旧代码
echo "===== 清理旧代码 ====="
cd $TARGET_DIR
rm -rf .git .gitea docker-compose.yml backend frontend 2>/dev/null || true
# 5. 下载最新代码(使用 curl
echo "===== 下载最新代码 ====="
curl -L -o /tmp/scoring-system.tar.gz "$REPO_URL/archive/refs/heads/$BRANCH.tar.gz" 2>&1 || {
echo "下载失败,尝试备用方案..."
wget -O /tmp/scoring-system.tar.gz "$REPO_URL/archive/refs/heads/$BRANCH.tar.gz" 2>&1 || exit 1
}
# 6. 解压代码
echo "===== 解压代码 ====="
tar -xzf /tmp/scoring-system.tar.gz -C $TARGET_DIR
mv $TARGET_DIR/Scoring-System-*/* $TARGET_DIR/
rm -rf $TARGET_DIR/Scoring-System-*
rm /tmp/scoring-system.tar.gz
# 7. 恢复配置
echo "===== 恢复配置 ====="
if [ -f /tmp/scoring-env-backup ]; then
cp /tmp/scoring-env-backup $TARGET_DIR/backend/.env
fi
# 8. 停止并移除 Docker 容器
echo -e "\n===== 停止并清理 Docker ====="
cd $TARGET_DIR
$DOCKER_CMD compose down 2>/dev/null || true
# 9. 创建 .env 文件(如果没有)
echo -e "\n===== 配置环境变量 ====="
if [ ! -f $TARGET_DIR/backend/.env ]; then
mkdir -p $TARGET_DIR/backend
cat > $TARGET_DIR/backend/.env <<'EOF'
# Database Configuration
DB_NAME=scoring
DB_USER=quant-speed
DB_PASSWORD=123quant-speed
DB_HOST=6.6.6.66
DB_PORT=5432
# Aliyun OSS Configuration
ALIYUN_ACCESS_KEY_ID=LTAI5tE62GW8MKyoEaotzxXk
ALIYUN_ACCESS_KEY_SECRET=Zdzqo1fgj57DxxioXOotNKhJdSfVQW
ALIYUN_OSS_ENDPOINT=https://oss-cn-shanghai.aliyuncs.com
ALIYUN_OSS_BUCKET_NAME=tangledup-ai-staging
ALIYUN_OSS_INTERNAL_ENDPOINT=https://oss-cn-shanghai-internal.aliyuncs.com
# Aliyun Tingwu Configuration
ALIYUN_TINGWU_APP_KEY=6eOX7N3tKE0fDwb
DASHSCOPE_API_KEY=sk-84e9eef24a274f568d4fa15c97556c9f
EOF
fi
# 10. 重新启动 Docker 容器
echo -e "\n===== 启动 Docker 容器 ====="
$DOCKER_CMD compose up -d --build
echo -e "\n===== 操作完成!====="