更新 .gitea/workflows/dev.yml
Some checks failed
/ build-parent-pom (push) Failing after 18s
/ build-common-modules (push) Has been skipped
/ build-and-push-services (ruoyi-auth) (push) Has been skipped
/ build-and-push-services (ruoyi-gateway) (push) Has been skipped
/ build-and-push-services (ruoyi-modules/Property) (push) Has been skipped
/ build-and-push-services (ruoyi-modules/Sis) (push) Has been skipped
/ build-and-push-services (ruoyi-modules/ruoyi-gen) (push) Has been skipped
/ build-and-push-services (ruoyi-modules/ruoyi-job) (push) Has been skipped
/ build-and-push-services (ruoyi-modules/ruoyi-resource) (push) Has been skipped
/ build-and-push-services (ruoyi-modules/ruoyi-system) (push) Has been skipped
/ build-and-push-services (ruoyi-modules/ruoyi-workflow) (push) Has been skipped
/ build-and-push-services (ruoyi-seata-server) (push) Has been skipped
/ build-and-push-services (ruoyi-sentinel-dashboard) (push) Has been skipped
/ build-and-push-services (ruoyi-snailjob-server) (push) Has been skipped
/ build-and-push-services (ruoyi-visual/ruoyi-monitor) (push) Has been skipped
/ build-and-push-services (ruoyi-visual/ruoyi-nacos) (push) Has been skipped

This commit is contained in:
2025-08-14 01:11:07 +08:00
parent 22dadcfdd9
commit 7bbf011dcf

View File

@@ -1,43 +1,47 @@
run-name: ${{ gitea.actor }} is building with parent POM first 🚀 run-name: ${{ gitea.actor }} 构建主POM并分模块打包 🚀
on: on:
push: push:
branches: branches:
- master - master
jobs: jobs:
# 第一步构建主POM父模块并安装到本地仓库
build-parent-pom: build-parent-pom:
runs-on: ubuntu runs-on: ubuntu
steps: steps:
- name: Checkout Repository - name: 拉取代码仓库
uses: http://git.missmoc.top/mocheng/checkout@v4 uses: http://git.missmoc.top/mocheng/checkout@v4
- name: Set up environment (JDK + Maven) - name: 配置环境变量(使用绝对路径)
run: | run: |
# 配置 JDK(确认路径正确,与实际安装一致) # 配置JDK绝对路径必须与runner中实际路径一致)
echo "JAVA_HOME=/java17/java17" >> $GITHUB_ENV export JAVA_HOME="/java17/java17"
echo "$JAVA_HOME/bin" >> $GITHUB_PATH # 配置Maven绝对路径必须与runner中实际路径一致
export MAVEN_HOME="/maven/apache-maven-3.9.11"
# 修复 Maven 路径:先确认 runner 中 Maven 的实际安装位置 # 验证JDK和Maven可执行文件是否存在
# 常见路径:/usr/local/maven、/opt/maven、/maven 等,根据实际情况修改 if [ ! -f "$JAVA_HOME/bin/java" ]; then
MAVEN_ACTUAL_PATH="/maven/apache-maven-3.9.11" # 关键:替换为 runner 中 Maven 的真实路径 echo "错误JDK可执行文件不存在于 $JAVA_HOME/bin/java"
exit 1
# 验证 Maven 可执行文件是否存在 fi
if [ ! -f "$MAVEN_ACTUAL_PATH/bin/mvn" ]; then if [ ! -f "$MAVEN_HOME/bin/mvn" ]; then
echo "Error: Maven 可执行文件不存在于 $MAVEN_ACTUAL_PATH/bin/mvn" echo "错误:Maven可执行文件不存在于 $MAVEN_HOME/bin/mvn"
exit 1 exit 1
fi fi
# 配置 Maven 环境变量 # 写入环境变量(确保后续步骤可用)
echo "MAVEN_HOME=$MAVEN_ACTUAL_PATH" >> $GITHUB_ENV echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "$MAVEN_ACTUAL_PATH/bin" >> $GITHUB_PATH echo "$JAVA_HOME/bin" >> $GITHUB_PATH
echo "MAVEN_HOME=$MAVEN_HOME" >> $GITHUB_ENV
echo "$MAVEN_HOME/bin" >> $GITHUB_PATH
# 验证配置 # 验证环境配置
echo "Java 版本:" echo "=== JDK版本 ==="
java -version "$JAVA_HOME/bin/java" -version
echo "Maven 版本" echo "=== Maven版本 ==="
mvn -v # 此处若仍报错,说明路径确实错误,需重新确认 "$MAVEN_HOME/bin/mvn" -v
- name: Configure Maven settings - name: 配置Maven仓库本地优先
run: | run: |
mkdir -p ~/.m2 mkdir -p ~/.m2
cat > ~/.m2/settings.xml << EOF cat > ~/.m2/settings.xml << EOF
@@ -51,6 +55,8 @@ jobs:
<repository> <repository>
<id>local-repo</id> <id>local-repo</id>
<url>file://${user.home}/.m2/repository</url> <url>file://${user.home}/.m2/repository</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository> </repository>
<repository> <repository>
<id>dromara-releases</id> <id>dromara-releases</id>
@@ -65,47 +71,72 @@ jobs:
</settings> </settings>
EOF EOF
- name: Build and install parent POM - name: 构建并安装主POM父模块
run: | run: |
MAIN_POM_PATH="./pom.xml" # 主POM绝对路径
if [ ! -f "$MAIN_POM_PATH" ]; then MAIN_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/pom.xml"
echo "Error: 主POM文件不存在" echo "主POM路径$MAIN_POM_ABSOLUTE_PATH"
if [ ! -f "$MAIN_POM_ABSOLUTE_PATH" ]; then
echo "错误主POM文件不存在于 $MAIN_POM_ABSOLUTE_PATH"
exit 1 exit 1
fi fi
mvn clean install -N -U -DskipTests -f $MAIN_POM_PATH
# 使用绝对路径执行Maven命令仅构建父模块-N
"$MAVEN_HOME/bin/mvn" clean install -N -U -DskipTests -f "$MAIN_POM_ABSOLUTE_PATH"
# 验证主POM是否安装成功
echo "=== 验证主POM安装 ==="
ls -la ~/.m2/repository/org/dromara/ruoyi-cloud-plus/
# 第二步构建通用模块依赖主POM
build-common-modules: build-common-modules:
needs: build-parent-pom needs: build-parent-pom
runs-on: ubuntu runs-on: ubuntu
steps: steps:
- name: Checkout Repository - name: 拉取代码仓库
uses: http://git.missmoc.top/mocheng/checkout@v4 uses: http://git.missmoc.top/mocheng/checkout@v4
- name: Set up environment - name: 配置环境变量(绝对路径)
run: | run: |
echo "JAVA_HOME=/java17/java17" >> $GITHUB_ENV 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 "$JAVA_HOME/bin" >> $GITHUB_PATH
MAVEN_ACTUAL_PATH="/maven/apache-maven-3.9.11" # 与上文一致 echo "MAVEN_HOME=$MAVEN_HOME" >> $GITHUB_ENV
echo "MAVEN_HOME=$MAVEN_ACTUAL_PATH" >> $GITHUB_ENV echo "$MAVEN_HOME/bin" >> $GITHUB_PATH
echo "$MAVEN_ACTUAL_PATH/bin" >> $GITHUB_PATH
mvn -v # 验证
- name: Build and install common modules - name: 构建并安装通用模块
run: | run: |
# 通用模块列表(根据实际项目结构调整)
COMMON_MODULES=( COMMON_MODULES=(
"ruoyi-common" "ruoyi-common"
"ruoyi-api" "ruoyi-api"
"ruoyi-common-bom" "ruoyi-common-bom"
"ruoyi-common-alibaba-bom"
"ruoyi-api-bom"
) )
for module in "${COMMON_MODULES[@]}"; do for module in "${COMMON_MODULES[@]}"; do
POM_PATH="./$module/pom.xml" # 模块POM的绝对路径
if [ -f "$POM_PATH" ]; then MODULE_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${module}/pom.xml"
mvn clean install -U -DskipTests -f $POM_PATH echo "=== 构建模块:$module ==="
else echo "POM路径$MODULE_POM_ABSOLUTE_PATH"
echo "Warning: 模块 $module 不存在"
if [ ! -f "$MODULE_POM_ABSOLUTE_PATH" ]; then
echo "警告:模块 $module 的POM文件不存在跳过"
continue
fi fi
# 使用Maven绝对路径执行命令
"$MAVEN_HOME/bin/mvn" clean install -U -DskipTests -f "$MODULE_POM_ABSOLUTE_PATH"
# 验证模块是否安装成功
MODULE_GROUP_ID="org.dromara"
ls -la ~/.m2/repository/"${MODULE_GROUP_ID//.//}"/"$module"/
done done
# 第三步:分服务构建镜像并上传(依赖通用模块)
build-and-push-services: build-and-push-services:
needs: build-common-modules needs: build-common-modules
runs-on: ubuntu runs-on: ubuntu
@@ -127,55 +158,69 @@ jobs:
- ruoyi-sentinel-dashboard - ruoyi-sentinel-dashboard
- ruoyi-snailjob-server - ruoyi-snailjob-server
steps: steps:
- name: Checkout Repository - name: 拉取代码仓库
uses: http://git.missmoc.top/mocheng/checkout@v4 uses: http://git.missmoc.top/mocheng/checkout@v4
- name: Set up environment - name: 配置环境变量(绝对路径)
run: | run: |
echo "JAVA_HOME=/java17/java17" >> $GITHUB_ENV 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 "$JAVA_HOME/bin" >> $GITHUB_PATH
MAVEN_ACTUAL_PATH="/maven/apache-maven-3.9.11" # 与上文一致 echo "MAVEN_HOME=$MAVEN_HOME" >> $GITHUB_ENV
echo "MAVEN_HOME=$MAVEN_ACTUAL_PATH" >> $GITHUB_ENV echo "$MAVEN_HOME/bin" >> $GITHUB_PATH
echo "$MAVEN_ACTUAL_PATH/bin" >> $GITHUB_PATH
mvn -v # 验证
- name: Build service with Maven - name: 构建服务模块
run: | run: |
SERVICE_PATH="${{ matrix.service }}" SERVICE_NAME="${{ matrix.service }}"
POM_PATH="./$SERVICE_PATH/pom.xml" # 服务POM的绝对路径
if [ ! -f "$POM_PATH" ]; then SERVICE_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/pom.xml"
echo "Error: POM文件不存在" echo "=== 构建服务:$SERVICE_NAME ==="
echo "POM路径$SERVICE_POM_ABSOLUTE_PATH"
if [ ! -f "$SERVICE_POM_ABSOLUTE_PATH" ]; then
echo "错误:服务 $SERVICE_NAME 的POM文件不存在"
exit 1 exit 1
fi fi
mvn clean package -U -DskipTests -f $POM_PATH
# 使用Maven绝对路径执行打包命令
"$MAVEN_HOME/bin/mvn" clean package -U -DskipTests -f "$SERVICE_POM_ABSOLUTE_PATH"
# 验证构建产物
echo "=== 构建产物 ==="
ls -la "${GITHUB_WORKSPACE}/${SERVICE_NAME}/target/"
- name: Set Up Docker Buildx - name: 配置Docker Buildx
uses: http://git.missmoc.top/mocheng/setup-buildx-action@v3 uses: http://git.missmoc.top/mocheng/setup-buildx-action@v3
- name: Login to Registry - name: 登录到容器仓库
uses: http://git.missmoc.top/mocheng/login-action@v3 uses: http://git.missmoc.top/mocheng/login-action@v3
with: with:
registry: ${{ secrets.REGISTRY_URL }} registry: ${{ secrets.REGISTRY_URL }}
username: ${{ secrets.REGISTRY_USER }} username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASS }} password: ${{ secrets.REGISTRY_PASS }}
- name: Determine Dockerfile Path - name: 确定Dockerfile路径
id: dockerfile-path id: dockerfile-path
run: | run: |
SERVICE_PATH="${{ matrix.service }}" SERVICE_NAME="${{ matrix.service }}"
DOCKERFILE="$SERVICE_PATH/Dockerfile" DOCKERFILE_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/Dockerfile"
if [ -f "$DOCKERFILE" ]; then
echo "dockerfile_path=$DOCKERFILE" >> $GITHUB_OUTPUT if [ -f "$DOCKERFILE_ABSOLUTE_PATH" ]; then
echo "dockerfile_path=$DOCKERFILE_ABSOLUTE_PATH" >> $GITHUB_OUTPUT
echo "使用Dockerfile$DOCKERFILE_ABSOLUTE_PATH"
else else
echo "dockerfile_path=./Dockerfile" >> $GITHUB_OUTPUT echo "dockerfile_path=${GITHUB_WORKSPACE}/Dockerfile" >> $GITHUB_OUTPUT
echo "使用根目录Dockerfile${GITHUB_WORKSPACE}/Dockerfile"
fi fi
- name: Build and Push Docker Image - name: 构建并推送Docker镜像
uses: http://git.missmoc.top/mocheng/build-push-action@v5 uses: http://git.missmoc.top/mocheng/build-push-action@v5
with: with:
context: . context: "${GITHUB_WORKSPACE}"
file: ${{ steps.dockerfile-path.outputs.dockerfile_path }} file: ${{ steps.dockerfile-path.outputs.dockerfile_path }}
tags: ${{ secrets.REGISTRY_URL }}/by2025/${{ matrix.service }}:${{ github.sha }} tags: ${{ secrets.REGISTRY_URL }}/by2025/${{ matrix.service }}:${{ github.sha }}
push: true push: true
cache-from: type=gha cache-from: type=gha
cache-to: type=gha,mode=max cache-to: type=gha,mode=max