SmartParks/.gitea/workflows/dev.yml
bichangxiong 7bbf011dcf
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
更新 .gitea/workflows/dev.yml
2025-08-14 01:11:07 +08:00

226 lines
8.2 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

run-name: ${{ gitea.actor }} 构建主POM并分模块打包 🚀
on:
push:
branches:
- master
jobs:
# 第一步构建主POM父模块并安装到本地仓库
build-parent-pom:
runs-on: ubuntu
steps:
- name: 拉取代码仓库
uses: http://git.missmoc.top/mocheng/checkout@v4
- name: 配置环境变量(使用绝对路径)
run: |
# 配置JDK绝对路径必须与runner中实际路径一致
export JAVA_HOME="/java17/java17"
# 配置Maven绝对路径必须与runner中实际路径一致
export MAVEN_HOME="/maven/apache-maven-3.9.11"
# 验证JDK和Maven可执行文件是否存在
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
# 验证环境配置
echo "=== JDK版本 ==="
"$JAVA_HOME/bin/java" -version
echo "=== Maven版本 ==="
"$MAVEN_HOME/bin/mvn" -v
- name: 配置Maven仓库本地优先
run: |
mkdir -p ~/.m2
cat > ~/.m2/settings.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<localRepository>${user.home}/.m2/repository</localRepository>
<profiles>
<profile>
<id>local-first</id>
<repositories>
<repository>
<id>local-repo</id>
<url>file://${user.home}/.m2/repository</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<repository>
<id>dromara-releases</id>
<url>https://maven.dromara.org/repository/releases/</url>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>local-first</activeProfile>
</activeProfiles>
</settings>
EOF
- name: 构建并安装主POM父模块
run: |
# 主POM绝对路径
MAIN_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/pom.xml"
echo "主POM路径$MAIN_POM_ABSOLUTE_PATH"
if [ ! -f "$MAIN_POM_ABSOLUTE_PATH" ]; then
echo "错误主POM文件不存在于 $MAIN_POM_ABSOLUTE_PATH"
exit 1
fi
# 使用绝对路径执行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:
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
# 模块POM的绝对路径
MODULE_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${module}/pom.xml"
echo "=== 构建模块:$module ==="
echo "POM路径$MODULE_POM_ABSOLUTE_PATH"
if [ ! -f "$MODULE_POM_ABSOLUTE_PATH" ]; then
echo "警告:模块 $module 的POM文件不存在跳过"
continue
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
# 第三步:分服务构建镜像并上传(依赖通用模块)
build-and-push-services:
needs: build-common-modules
runs-on: ubuntu
strategy:
matrix:
service:
- ruoyi-auth
- ruoyi-gateway
- ruoyi-modules/Property
- ruoyi-modules/ruoyi-gen
- ruoyi-modules/ruoyi-job
- ruoyi-modules/ruoyi-resource
- ruoyi-modules/ruoyi-system
- ruoyi-modules/ruoyi-workflow
- ruoyi-modules/Sis
- ruoyi-visual/ruoyi-monitor
- ruoyi-visual/ruoyi-nacos
- ruoyi-seata-server
- ruoyi-sentinel-dashboard
- ruoyi-snailjob-server
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: |
SERVICE_NAME="${{ matrix.service }}"
# 服务POM的绝对路径
SERVICE_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/pom.xml"
echo "=== 构建服务:$SERVICE_NAME ==="
echo "POM路径$SERVICE_POM_ABSOLUTE_PATH"
if [ ! -f "$SERVICE_POM_ABSOLUTE_PATH" ]; then
echo "错误:服务 $SERVICE_NAME 的POM文件不存在"
exit 1
fi
# 使用Maven绝对路径执行打包命令
"$MAVEN_HOME/bin/mvn" clean package -U -DskipTests -f "$SERVICE_POM_ABSOLUTE_PATH"
# 验证构建产物
echo "=== 构建产物 ==="
ls -la "${GITHUB_WORKSPACE}/${SERVICE_NAME}/target/"
- name: 配置Docker Buildx
uses: http://git.missmoc.top/mocheng/setup-buildx-action@v3
- name: 登录到容器仓库
uses: http://git.missmoc.top/mocheng/login-action@v3
with:
registry: ${{ secrets.REGISTRY_URL }}
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASS }}
- name: 确定Dockerfile路径
id: dockerfile-path
run: |
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
echo "使用Dockerfile$DOCKERFILE_ABSOLUTE_PATH"
else
echo "dockerfile_path=${GITHUB_WORKSPACE}/Dockerfile" >> $GITHUB_OUTPUT
echo "使用根目录Dockerfile${GITHUB_WORKSPACE}/Dockerfile"
fi
- name: 构建并推送Docker镜像
uses: http://git.missmoc.top/mocheng/build-push-action@v5
with:
context: "${GITHUB_WORKSPACE}"
file: ${{ steps.dockerfile-path.outputs.dockerfile_path }}
tags: ${{ secrets.REGISTRY_URL }}/by2025/${{ matrix.service }}:${{ github.sha }}
push: true
cache-from: type=gha
cache-to: type=gha,mode=max