Files
Scoring-System/.gitea/workflows/deploy.yaml
爽哒哒 3a1db5b991
All checks were successful
Deploy to Server / deploy (push) Successful in 4s
fix: 修复部署工作流 git clone 认证和 curl HTTP/2 问题
2026-03-21 00:52:28 +08:00

93 lines
3.8 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
script: |
TARGET_DIR="/home/quant/data/dev/deploy"
REPO_URL="https://sdd:zsj981107@gitea.tangledup-ai.com/quant-speed-AI/Scoring-System.git"
SUDO_PASSWORD="123quant-speed"
# sudo 函数
run_sudo() {
echo "$SUDO_PASSWORD" | sudo -S "$@"
}
# 1. 创建目标目录
echo "===== 创建目标目录: $TARGET_DIR ====="
run_sudo mkdir -p $TARGET_DIR
run_sudo chown -R quant:quant $TARGET_DIR
# 2. 检查是否是 git 仓库
echo "===== 检查 git 仓库 ====="
cd $TARGET_DIR
if [ ! -d ".git" ]; then
echo "目录不是 git 仓库,尝试克隆..."
# 尝试 git clone失败则使用 curl 下载
if ! git clone $REPO_URL . 2>/dev/null; then
echo "Git clone 失败,使用 curl 下载代码..."
cd /tmp
curl -L --http1.1 -o scoring-system.tar.gz "https://quant:123quant-speed@gitea.tangledup-ai.com/quant-speed-AI/Scoring-System/archive/refs/heads/main.tar.gz" || exit 1
run_sudo tar -xzf scoring-system.tar.gz -C $TARGET_DIR
run_sudo mv $TARGET_DIR/Scoring-System-*/* $TARGET_DIR/ 2>/dev/null || run_sudo mv $TARGET_DIR/Scoring-System/* $TARGET_DIR/
run_sudo rm -rf $TARGET_DIR/Scoring-System-* $TARGET_DIR/Scoring-System
rm scoring-system.tar.gz
run_sudo chown -R quant:quant $TARGET_DIR
fi
fi
# 3. 拉取 Git 最新代码(如果是 git 仓库)
echo -e "\n===== 拉取 Git 代码 ====="
if [ -d ".git" ]; then
git remote set-url origin $REPO_URL
if ! git pull; then
echo "警告Git pull 失败,尝试强制同步..."
git fetch --all
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
git reset --hard origin/$CURRENT_BRANCH
fi
else
echo "不是 git 仓库,跳过 pull"
fi
# 4. 停止并移除 Docker 容器
echo -e "\n===== 停止并清理 Docker ====="
echo "$SUDO_PASSWORD" | sudo -S docker compose down 2>/dev/null || true
# 5. 创建/更新 .env 文件
echo -e "\n===== 配置环境变量 ====="
run_sudo mkdir -p backend
run_sudo chown -R quant:quant backend
cat > /tmp/.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
run_sudo mv /tmp/.env backend/.env
# 6. 重新启动 Docker 容器
echo -e "\n===== 启动 Docker 容器 ====="
echo "$SUDO_PASSWORD" | sudo -S docker compose up -d --build
echo -e "\n===== 操作完成!====="