diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml new file mode 100644 index 0000000..4eb2592 --- /dev/null +++ b/.gitea/workflows/ci.yml @@ -0,0 +1,84 @@ +name: Knowledge Base Deploy + +on: + push: + branches: + - main + - 'feature/*' + +env: + DEPLOY_HOST: micecola.top + DEPLOY_USER: root + TEST_DIR: /www/wwwroot/kb-web-test/zhangqing + PROD_DIR: /www/wwwroot/kb-web/zhangqing + +jobs: + # ==================== 测试环境部署 ==================== + deploy-test: + runs-on: ubuntu-latest + if: github.ref != 'refs/heads/main' + steps: + - name: Deploy to test environment + uses: appleboy/ssh-action@v1 + with: + host: ${{ env.DEPLOY_HOST }} + username: ${{ env.DEPLOY_USER }} + key: ${{ secrets.DEPLOY_KEY }} + script: | + # 备份 + BACKUP_DIR="/www/backup/knowledge-base-test" + mkdir -p $BACKUP_DIR + TIMESTAMP=$(date +%Y%m%d_%H%M%S) + [ -d ${{ env.TEST_DIR }} ] && tar -czf $BACKUP_DIR/backup_$TIMESTAMP.tar.gz -C ${{ env.TEST_DIR }} . 2>/dev/null || true + cd $BACKUP_DIR && ls -t | tail -n +6 | xargs rm -f 2>/dev/null || true + + # 全量部署 - 删除旧目录重新克隆 + rm -rf ${{ env.TEST_DIR }} + git clone --depth 1 -b ${{ github.ref_name }} ssh://gitea-external/starmen1265/knowledge-base.git ${{ env.TEST_DIR }} + + # 删除 .git 目录(不需要版本控制) + rm -rf ${{ env.TEST_DIR }}/.git + + # 设置权限 + chown -R www:www ${{ env.TEST_DIR }} + + echo "✅ 测试环境知识库部署完成" + echo "文件数: $(find ${{ env.TEST_DIR }} -type f | wc -l)" + + - name: Notify + run: echo "✅ 测试环境: http://${{ env.DEPLOY_HOST }}:8081" + + # ==================== 正式环境部署 ==================== + deploy-prod: + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/main' && github.event_name == 'push' + steps: + - name: Deploy to production + uses: appleboy/ssh-action@v1 + with: + host: ${{ env.DEPLOY_HOST }} + username: ${{ env.DEPLOY_USER }} + key: ${{ secrets.DEPLOY_KEY }} + script: | + # 备份 + BACKUP_DIR="/www/backup/knowledge-base-prod" + mkdir -p $BACKUP_DIR + TIMESTAMP=$(date +%Y%m%d_%H%M%S) + [ -d ${{ env.PROD_DIR }} ] && tar -czf $BACKUP_DIR/backup_$TIMESTAMP.tar.gz -C ${{ env.PROD_DIR }} . 2>/dev/null || true + cd $BACKUP_DIR && ls -t | tail -n +6 | xargs rm -f 2>/dev/null || true + + # 全量部署 - 删除旧目录重新克隆 + rm -rf ${{ env.PROD_DIR }} + git clone --depth 1 ssh://gitea-external/starmen1265/knowledge-base.git ${{ env.PROD_DIR }} + + # 删除 .git 目录 + rm -rf ${{ env.PROD_DIR }}/.git + + # 设置权限 + chown -R www:www ${{ env.PROD_DIR }} + + echo "✅ 正式环境知识库部署完成" + echo "文件数: $(find ${{ env.PROD_DIR }} -type f | wc -l)" + + - name: Notify + run: echo "✅ 正式环境: http://${{ env.DEPLOY_HOST }}" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1c98c9d --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +# 大文件不提交 +content/downloads/ +*.mp4 +*.m4a +*.wav + +# Git +.git/ + +# 系统文件 +.DS_Store +Thumbs.db