diff --git a/.gitea/workflows/dev.yml b/.gitea/workflows/dev.yml
index 0740af1b..13c24388 100644
--- a/.gitea/workflows/dev.yml
+++ b/.gitea/workflows/dev.yml
@@ -1,13 +1,133 @@
-name: Build and Push Microservices Images
-
+run-name: ${{ gitea.actor }} 构建镜像并推送(不含JAR依赖上传)🚀
on:
push:
branches:
- - [main] # 替换为要监听的分支
+ - master
jobs:
- build-and-push:
- runs-on: ubuntu-latest
+ build-parent-pom:
+ runs-on: ubuntu
+ steps:
+ - name: 拉取代码仓库
+ uses: http://git.missmoc.top/mocheng/checkout@v4
+
+ - name: 配置环境变量(绝对路径)
+ run: |
+ export JAVA_HOME="/java17/java17"
+ export MAVEN_HOME="/maven/apache-maven-3.9.11"
+
+ if [ ! -f "$JAVA_HOME/bin/java" ]; then
+ echo "错误:JDK可执行文件不存在于 $JAVA_HOME/bin/java"
+ exit 1
+ fi
+ if [ ! -f "$MAVEN_HOME/bin/mvn" ]; then
+ echo "错误:Maven可执行文件不存在于 $MAVEN_HOME/bin/mvn"
+ exit 1
+ fi
+
+ echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
+ echo "$JAVA_HOME/bin" >> $GITHUB_PATH
+ echo "MAVEN_HOME=$MAVEN_HOME" >> $GITHUB_ENV
+ echo "$MAVEN_HOME/bin" >> $GITHUB_PATH
+
+ "$JAVA_HOME/bin/java" -version
+ "$MAVEN_HOME/bin/mvn" -v
+
+ - name: 配置Maven仓库
+ run: |
+ mkdir -p ~/.m2
+ cat > ~/.m2/settings.xml << EOF
+
+
+ $HOME/.m2/repository
+
+
+ multi-repo
+
+
+ local-repo
+ file://$HOME/.m2/repository
+
+
+ aliyun-public
+ https://maven.aliyun.com/repository/public
+
+
+
+
+
+ multi-repo
+
+
+ EOF
+
+ - name: 构建主POM(仅本地安装,不上传)
+ run: |
+ MAIN_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/pom.xml"
+ if [ ! -f "$MAIN_POM_ABSOLUTE_PATH" ]; then
+ echo "错误:主POM文件不存在"
+ exit 1
+ fi
+
+ retries=3
+ count=0
+ until "$MAVEN_HOME/bin/mvn" clean package -U -DskipTests -f "$MAIN_POM_ABSOLUTE_PATH"; do
+ count=$((count + 1))
+ if [ $count -ge $retries ]; then
+ echo "错误:主POM构建失败"
+ exit 1
+ fi
+ sleep 10
+ done
+
+ build-common-modules:
+ needs: build-parent-pom
+ runs-on: ubuntu
+ steps:
+ - name: 拉取代码仓库
+ uses: http://git.missmoc.top/mocheng/checkout@v4
+
+ - name: 配置环境变量
+ run: |
+ export JAVA_HOME="/java17/java17"
+ export MAVEN_HOME="/maven/apache-maven-3.9.11"
+ echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
+ echo "$JAVA_HOME/bin" >> $GITHUB_PATH
+ echo "MAVEN_HOME=$MAVEN_HOME" >> $GITHUB_ENV
+ echo "$MAVEN_HOME/bin" >> $GITHUB_PATH
+
+ - name: 构建通用模块(仅本地使用,不上传)
+ run: |
+ COMMON_MODULES=(
+ "ruoyi-common"
+ "ruoyi-api"
+ "ruoyi-common-bom"
+ "ruoyi-common-alibaba-bom"
+ "ruoyi-api-bom"
+ )
+
+ for module in "${COMMON_MODULES[@]}"; do
+ MODULE_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${module}/pom.xml"
+ if [ ! -f "$MODULE_POM_ABSOLUTE_PATH" ]; then
+ echo "警告:模块 $module 不存在,跳过"
+ continue
+ fi
+
+ retries=3
+ count=0
+ until "$MAVEN_HOME/bin/mvn" clean install -U -DskipTests -f "$MODULE_POM_ABSOLUTE_PATH"; do
+ count=$((count + 1))
+ if [ $count -ge $retries ]; then
+ echo "错误:模块 $module 构建失败"
+ exit 1
+ fi
+ sleep 10
+ done
+ done
+
+ build-and-push-services:
+ needs: build-common-modules
+ runs-on: ubuntu
strategy:
matrix:
service:
@@ -26,41 +146,58 @@ jobs:
- ruoyi-sentinel-dashboard
- ruoyi-snailjob-server
steps:
- - name: Checkout Repository
- uses: actions/checkout@v3
+ - name: 拉取代码仓库
+ uses: http://git.missmoc.top/mocheng/checkout@v4
- - name: Set Up JDK
- uses: actions/setup-java@v3
- with:
- java-version: '17' # 按项目实际Java版本调整
- distribution: 'temurin'
+ - name: 配置环境变量
+ run: |
+ export JAVA_HOME="/java17/java17"
+ export MAVEN_HOME="/maven/apache-maven-3.9.11"
+ echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
+ echo "$JAVA_HOME/bin" >> $GITHUB_PATH
+ echo "MAVEN_HOME=$MAVEN_HOME" >> $GITHUB_ENV
+ echo "$MAVEN_HOME/bin" >> $GITHUB_PATH
- - name: Build Project with Maven
- run: mvn clean package -DskipTests -f ./${{ matrix.service }}/pom.xml
+ - name: 构建服务模块
+ run: |
+ SERVICE_NAME="${{ matrix.service }}"
+ SERVICE_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/pom.xml"
+ if [ ! -f "$SERVICE_POM_ABSOLUTE_PATH" ]; then
+ echo "错误:服务 $SERVICE_NAME 的POM文件不存在"
+ exit 1
+ fi
+
+ "$MAVEN_HOME/bin/mvn" clean package -U -DskipTests -f "$SERVICE_POM_ABSOLUTE_PATH"
- - name: Set Up Docker Buildx
- uses: docker/setup-buildx-action@v2
+ - name: 配置Docker Buildx
+ uses: http://git.missmoc.top/mocheng/setup-buildx-action@v3
- - name: Login to Gitea Container Registry
- uses: docker/login-action@v2
+ - name: 登录到容器仓库
+ uses: http://git.missmoc.top/mocheng/login-action@v3
with:
registry: ${{ secrets.REGISTRY_URL }}
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASS }}
- - name: Determine Dockerfile Path
+ - name: 确定Dockerfile路径
id: dockerfile-path
run: |
- if [ "${{ matrix.service }}" = "ruoyi-visual/ruoyi-nacos" ]; then
- echo "dockerfile_path=./ruoyi-visual/ruoyi-nacos/Dockerfile" >> $GITHUB_OUTPUT
+ SERVICE_NAME="${{ matrix.service }}"
+ DOCKERFILE_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/Dockerfile"
+
+ if [ -f "$DOCKERFILE_ABSOLUTE_PATH" ]; then
+ echo "dockerfile_path=$DOCKERFILE_ABSOLUTE_PATH" >> $GITHUB_OUTPUT
else
- echo "dockerfile_path=./${{ matrix.service }}/Dockerfile" >> $GITHUB_OUTPUT
+ echo "dockerfile_path=${GITHUB_WORKSPACE}/Dockerfile" >> $GITHUB_OUTPUT
fi
- - name: Build and Push Docker Image
- uses: docker/build-push-action@v4
+ - name: 构建并推送Docker镜像(仅推送镜像,不上传JAR)
+ uses: http://git.missmoc.top/mocheng/build-push-action@v5
with:
- context: .
+ context: "${GITHUB_WORKSPACE}"
file: ${{ steps.dockerfile-path.outputs.dockerfile_path }}
tags: ${{ secrets.REGISTRY_URL }}/by2025/${{ matrix.service }}:${{ github.sha }}
- push: true
\ No newline at end of file
+ push: true
+ cache-from: type=gha
+ cache-to: type=gha,mode=max
+
\ No newline at end of file
diff --git a/ruoyi-modules/pom.xml b/ruoyi-modules/pom.xml
index 3e55175f..267aca5a 100644
--- a/ruoyi-modules/pom.xml
+++ b/ruoyi-modules/pom.xml
@@ -14,8 +14,8 @@
ruoyi-job
ruoyi-resource
ruoyi-workflow
- Property
- Sis
+
+
ruoyi-modules