diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 6f36418..917fd64 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -13,56 +13,61 @@ jobs: deploy: runs-on: [self-hosted, rent-deploy] steps: + - name: Clone or update code + run: | + WORK_DIR="/tmp/rent-deploy" + + if [ -d "$WORK_DIR" ]; then + echo "代码目录已存在,拉取最新代码..." + cd $WORK_DIR + git fetch --all + git reset --hard origin/${{ github.ref_name }} + else + echo "首次克隆代码..." + git clone ${{ gitea.server_url }}/${{ gitea.repository }}.git $WORK_DIR + cd $WORK_DIR + git checkout ${{ github.ref_name }} + fi + + echo "当前分支: $(git branch --show-current)" + echo "最新提交: $(git log -1 --oneline)" + - name: Deploy to test if: github.ref == 'refs/heads/test' run: | echo "部署到测试环境..." - echo "当前目录: $(pwd)" - echo "目录内容:" - ls -la - - # 确保在正确的目录 - if [ -d "deploy/docker" ]; then - cd deploy/docker - else - echo "错误: 找不到 deploy/docker 目录" - exit 1 - fi + 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 "部署到生产环境..." - echo "当前目录: $(pwd)" - echo "目录内容:" - ls -la - - # 确保在正确的目录 - if [ -d "deploy/docker" ]; then - cd deploy/docker - else - echo "错误: 找不到 deploy/docker 目录" - exit 1 - fi + 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 "✅ 生产环境部署完成"