diff --git a/.gitea/workflows/dev.yml b/.gitea/workflows/dev.yml
index 1ce12579..fb64956e 100644
--- a/.gitea/workflows/dev.yml
+++ b/.gitea/workflows/dev.yml
@@ -1,80 +1,13 @@
-run-name: ${{ gitea.actor }} 构建并推送服务镜像 🚀
+run-name: ${{ gitea.actor }} 打包并构建镜像 🚀
on:
push:
- branches: [master]
+ branches:
+ - master
jobs:
- # 阶段1:通过主POM统一构建所有模块
- build-all:
- runs-on: ubuntu
- steps:
- - name: 拉取代码仓库
- uses: http://git.missmoc.top/mocheng/checkout@v4
-
- - name: 配置JDK和Maven环境
- run: |
- # 配置环境变量路径
- export JAVA_HOME="/java17/java17"
- export MAVEN_HOME="/maven/apache-maven-3.9.11"
-
- # 验证环境是否存在
- [ -d "$JAVA_HOME" ] || { echo "错误:JDK目录不存在 - $JAVA_HOME"; exit 1; }
- [ -d "$MAVEN_HOME" ] || { echo "错误:Maven目录不存在 - $MAVEN_HOME"; exit 1; }
-
- # 导出环境变量到工作流
- 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 -version
- mvn -v
-
- - name: 配置Maven仓库(阿里云)
- run: |
- # 创建Maven配置目录
- mkdir -p ~/.m2
-
- # 写入settings.xml配置
- cat > ~/.m2/settings.xml << 'EOF'
-
-
- ${user.home}/.m2/repository
-
-
- aliyun
-
-
- aliyun-public
- https://maven.aliyun.com/repository/public
- true
- true
-
-
-
-
-
- aliyun
-
-
- EOF
-
- - name: 主POM统一打包所有模块
- run: |
- # 从根目录执行打包命令
- mvn clean package -U -DskipTests -f pom.xml
-
- # 验证打包结果
- echo "=== 构建产物列表 ==="
- find . -name "*.jar" -path "*/target/*"
-
- # 阶段2:为每个服务模块构建并推送Docker镜像
- build-and-push-images:
- needs: build-all
+ build-and-push:
runs-on: ubuntu
strategy:
- fail-fast: false # 单个服务失败不影响其他服务构建
matrix:
service:
- ruoyi-auth
@@ -95,25 +28,84 @@ jobs:
- name: 拉取代码仓库
uses: http://git.missmoc.top/mocheng/checkout@v4
- - name: 配置Docker Buildx构建环境
+ - name: 配置环境变量
+ run: |
+ # 配置JDK和Maven绝对路径
+ 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"
+ exit 1
+ fi
+ if [ ! -f "$MAVEN_HOME/bin/mvn" ]; then
+ echo "错误:Maven不存在于 $MAVEN_HOME"
+ 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 -version
+ mvn -v
+
+ - name: 配置Maven仓库(仅华为镜像)
+ run: |
+ mkdir -p ~/.m2
+ cat > ~/.m2/settings.xml << EOF
+
+
+ $HOME/.m2/repository
+
+
+ huawei
+ https://mirrors.huaweicloud.com/repository/maven/
+ *
+
+
+
+ EOF
+
+ - name: 执行mvn clean package打包
+ run: |
+ SERVICE_NAME="${{ matrix.service }}"
+ POM_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/pom.xml"
+
+ # 检查POM文件是否存在
+ if [ ! -f "$POM_PATH" ]; then
+ echo "错误:$SERVICE_NAME 的POM文件不存在于 $POM_PATH"
+ exit 1
+ fi
+
+ # 直接执行打包命令
+ mvn clean package -U -DskipTests -f "$POM_PATH"
+
+ # 验证打包结果
+ echo "=== 打包产物 ==="
+ ls -la "${GITHUB_WORKSPACE}/${SERVICE_NAME}/target/"
+
+ - name: 配置Docker Buildx
uses: http://git.missmoc.top/mocheng/setup-buildx-action@v3
- - name: 登录到容器仓库
+ - name: 登录容器仓库
uses: http://git.missmoc.top/mocheng/login-action@v3
with:
registry: ${{ secrets.REGISTRY_URL }}
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASS }}
- - name: 构建并推送服务镜像
+ - name: 构建并推送Docker镜像
uses: http://git.missmoc.top/mocheng/build-push-action@v5
with:
- context: . # 构建上下文为项目根目录
- file: ./${{ matrix.service }}/Dockerfile # 指定模块的Dockerfile路径
- tags: # 镜像标签
- ${{ secrets.REGISTRY_URL }}/by2025/${{ matrix.service }}:${{ github.sha }}
- ${{ secrets.REGISTRY_URL }}/by2025/${{ matrix.service }}:latest
- push: true # 推送镜像到仓库
- cache-from: type=gha # 使用GitHub Actions缓存
- cache-to: type=gha,mode=max # 最大化缓存内容
+ context: "${GITHUB_WORKSPACE}"
+ file: "${{ matrix.service }}/Dockerfile"
+ tags: ${{ secrets.REGISTRY_URL }}/by2025/${{ matrix.service }}:${{ github.sha }}
+ push: true
+ cache-from: type=gha
+ cache-to: type=gha,mode=max
\ No newline at end of file