chore(project): rebranded project as 恭学教育 (GongXue Education)
Some checks failed
Deploy to Runner / deploy (push) Failing after 6m7s
Some checks failed
Deploy to Runner / deploy (push) Failing after 6m7s
- 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:
127
.gitea/workflows/ci.yml
Normal file
127
.gitea/workflows/ci.yml
Normal 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.1(Docker 默认网桥);如果不对,设置 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
|
||||
Reference in New Issue
Block a user