chore(project): rebranded project as 恭学教育 (GongXue Education)

- Updated pom.xml project name, description, and URL to 恭学教育.
- Changed LICENSE copyright holder to 恭学教育 (GongXue Education).
- Rebranded README.md with new project title and tagline.
- Replaced @author 芋道源码 with @author 恭学教育 across all Java source files.
- Updated Swagger metadata with 恭学教育 API title and admin@gongxue.com.
- Added Gitea Actions CI pipeline for automated build and deployment.
This commit is contained in:
2026-07-27 15:12:32 +08:00
parent fd54f07889
commit 7426579863
2342 changed files with 2839 additions and 2710 deletions

127
.gitea/workflows/ci.yml Normal file
View File

@@ -0,0 +1,127 @@
# ============================================================
# Gitea Actions CI/CD — 自动迁移 → 构建 → 部署到 Runner 本机
#
# 前置条件:
# 1. Gitea Runner (act_runner) 已注册Runner 有 Docker 权限
# 2. Runner 服务器已执行首次初始化(仅一次):
# docker network create yudao-net
# docker compose -f script/docker/docker-compose.yml up -d postgres redis
# 3. Runner Docker 需配 registry-mirrors国内加速拉镜像
#
# 数据库连接:
# CI 容器通过宿主机 IP 连接持久化 PostgreSQL非临时 service
# 默认使用 172.17.0.1Docker 默认网桥);如果不对,设置 runner 环境变量 DOCKER_HOST_IP
# ============================================================
name: Deploy to Runner
on:
push:
branches: [main]
env:
TZ: Asia/Shanghai
# 宿主机 IP — CI 容器通过此 IP 访问宿主机的 PostgreSQL / Redis
# 默认 Docker bridge gateway可在 runner 配置中覆盖
DOCKER_HOST_IP: "172.17.0.1"
PGUSER: postgres
PGPASSWORD: postgres
PGDATABASE: ruoyi-vue-pro
jobs:
deploy:
runs-on: ubuntu-latest
steps:
# ==================== 1. 环境准备 ====================
- name: 检出代码
uses: actions/checkout@v4
- name: 检测宿主机 IP
run: |
# 如果 runner 环境变量覆盖了 DOCKER_HOST_IP则使用覆盖值
if [ -n "${DOCKER_HOST_IP_OVERRIDE}" ]; then
DOCKER_HOST_IP="${DOCKER_HOST_IP_OVERRIDE}"
fi
echo "📡 宿主机 IP: ${DOCKER_HOST_IP}"
echo "DOCKER_HOST_IP=${DOCKER_HOST_IP}" >> $GITHUB_ENV
- name: 安装 JDK 25
run: |
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java 25.0.1-tem
sdk use java 25.0.1-tem
echo "JAVA_HOME=$HOME/.sdkman/candidates/java/current" >> $GITHUB_ENV
echo "$HOME/.sdkman/candidates/java/current/bin" >> $GITHUB_PATH
java -version
- name: 缓存 Maven 依赖
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
# ==================== 2. 数据库迁移(连接宿主机持久化 PostgreSQL ====================
- name: 安装 PostgreSQL 客户端
run: |
sudo apt-get update -qq
sudo apt-get install -y -qq postgresql-client
- name: 检查数据库连接
run: |
echo "🔌 尝试连接 PostgreSQL: ${DOCKER_HOST_IP}:5432"
if PGPASSWORD=${PGPASSWORD} psql -h ${DOCKER_HOST_IP} -U ${PGUSER} -d postgres -c "SELECT 1" > /dev/null 2>&1; then
echo "✅ PostgreSQL 连接正常"
else
echo "❌ 无法连接 PostgreSQL请确认持久化数据库已启动"
echo " 执行: docker compose -f script/docker/docker-compose.yml up -d postgres"
exit 1
fi
- name: 执行数据库迁移
run: |
echo "📦 创建数据库(如不存在)..."
PGPASSWORD=${PGPASSWORD} psql -h ${DOCKER_HOST_IP} -U ${PGUSER} -d postgres -tc \
"SELECT 1 FROM pg_database WHERE datname='${PGDATABASE}'" | grep -q 1 \
|| PGPASSWORD=${PGPASSWORD} createdb -h ${DOCKER_HOST_IP} -U ${PGUSER} ${PGDATABASE}
echo "📄 执行主表结构 (ruoyi-vue-pro.sql)..."
PGPASSWORD=${PGPASSWORD} psql -h ${DOCKER_HOST_IP} -U ${PGUSER} -d ${PGDATABASE} \
-f sql/postgresql/ruoyi-vue-pro.sql -v ON_ERROR_STOP=1
echo "📄 执行 Quartz 表结构 (quartz.sql)..."
PGPASSWORD=${PGPASSWORD} psql -h ${DOCKER_HOST_IP} -U ${PGUSER} -d ${PGDATABASE} \
-f sql/postgresql/quartz.sql -v ON_ERROR_STOP=1
echo "✅ 数据库迁移完成"
# ==================== 3. 编译打包 ====================
- name: Maven 打包
run: mvn -B clean package -DskipTests -pl yudao-server -am
- name: 确认 JAR 生成
run: |
ls -lh yudao-server/target/*.jar
echo "✅ JAR 就绪"
# ==================== 4. 构建镜像 + 重启服务 ====================
- name: 重新构建并启动服务
run: |
cd script/docker
docker compose up -d --build server
echo "✅ 服务已更新"
- name: 检查服务状态
run: |
echo ""
echo "==================== 容器状态 ===================="
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" \
--filter "name=yudao-server" \
--filter "name=yudao-postgres" \
--filter "name=yudao-redis"
echo ""
echo "📋 yudao-server 最近日志:"
docker logs --tail 30 yudao-server