Files
rent/.gitea/workflows/deploy.yml
T
xiaoquan 860ad35387 debug: 自动查找 Gitea 仓库路径
## 修改内容
- 尝试多个可能的 Gitea 仓库路径
- 如果都找不到,执行 find 命令搜索
- 输出搜索结果,方便确定正确路径

## 目的
- 找到服务器上 Gitea 仓库的实际位置
- 根据输出确定正确路径

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-10 17:43:10 +08:00

107 lines
3.5 KiB
YAML

name: Deploy
on:
push:
branches:
- prod
- test
env:
NODE_ENV: production
jobs:
deploy:
runs-on: [self-hosted, rent-deploy]
steps:
- name: Prepare code
run: |
WORK_DIR="/tmp/rent-deploy"
echo "准备代码目录..."
echo "查找 Gitea 仓库路径..."
# 查找可能的 Gitea 仓库路径
POSSIBLE_PATHS=(
"/www/dk_project/dk_app/gitea/gitea_P4dS/data/gitea/repositories/xiaoquan/rent.git"
"/www/dk_project/dk_app/gitea/gitea_P4dS/gitea/data/git/repositories/xiaoquan/rent.git"
"/var/lib/docker/volumes/gitea_data/_data/git/repositories/xiaoquan/rent.git"
)
GITEA_REPO=""
for path in "${POSSIBLE_PATHS[@]}"; do
if [ -d "$path" ]; then
GITEA_REPO="$path"
echo "✅ 找到仓库: $path"
break
fi
done
if [ -z "$GITEA_REPO" ]; then
echo "❌ 未找到 Gitea 仓库,尝试查找..."
find /www/dk_project/dk_app/gitea -name "rent.git" -type d 2>/dev/null || true
find /var/lib/docker/volumes -name "rent.git" -type d 2>/dev/null || true
echo "请检查上面的输出,找到正确的仓库路径"
exit 1
fi
if [ -d "$WORK_DIR/.git" ]; then
echo "代码目录已存在,更新代码..."
cd $WORK_DIR
git fetch origin
git checkout ${{ github.ref_name }}
git reset --hard origin/${{ github.ref_name }}
else
echo "首次初始化代码..."
rm -rf $WORK_DIR
mkdir -p $WORK_DIR
cd $WORK_DIR
git init
git remote add origin $GITEA_REPO
git fetch origin
git checkout -b ${{ github.ref_name }} origin/${{ github.ref_name }}
fi
echo "✅ 代码准备完成"
echo "当前分支: $(git branch --show-current)"
echo "最新提交: $(git log -1 --oneline)"
- name: Deploy to test
if: github.ref == 'refs/heads/test'
run: |
echo "部署到测试环境..."
cd /tmp/rent-deploy/deploy/docker
export TEST_DB_PASSWORD="${{ secrets.TEST_DB_PASSWORD }}"
export TEST_JWT_SECRET="${{ secrets.TEST_JWT_SECRET }}"
export ENCRYPTION_KEY="${{ secrets.ENCRYPTION_KEY }}"
docker-compose -f docker-compose.test.yml down --remove-orphans
docker-compose -f docker-compose.test.yml build --parallel
docker-compose -f docker-compose.test.yml up -d
docker image prune -f
echo "等待服务启动..."
sleep 10
docker-compose -f docker-compose.test.yml ps
echo "✅ 测试环境部署完成"
- name: Deploy to production
if: github.ref == 'refs/heads/prod'
run: |
echo "部署到生产环境..."
cd /tmp/rent-deploy/deploy/docker
export PROD_DB_PASSWORD="${{ secrets.PROD_DB_PASSWORD }}"
export PROD_JWT_SECRET="${{ secrets.PROD_JWT_SECRET }}"
export ENCRYPTION_KEY="${{ secrets.ENCRYPTION_KEY }}"
docker-compose -f docker-compose.prod.yml down --remove-orphans
docker-compose -f docker-compose.prod.yml build --parallel
docker-compose -f docker-compose.prod.yml up -d
docker image prune -f
echo "等待服务启动..."
sleep 10
docker-compose -f docker-compose.prod.yml ps
echo "✅ 生产环境部署完成"