更新 .gitea/workflows/dev.yml
Some checks failed
/ build-parent-pom (push) Failing after 1m3s
/ 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
Some checks failed
/ build-parent-pom (push) Failing after 1m3s
/ 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:
parent
33ea126b95
commit
43f07b7396
@ -1,103 +1,138 @@
|
|||||||
run-name: ${{ gitea.actor }} 构建主POM并分模块打包 🚀
|
run-name: ${{ gitea.actor }} 构建镜像并推送(不含JAR依赖上传)🚀
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# 第一步:构建主POM(父模块)并安装到本地仓库
|
|
||||||
build-parent-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>/root/.m2/repository</localRepository>
|
|
||||||
<profiles>
|
|
||||||
<profile>
|
|
||||||
<id>local-first</id>
|
|
||||||
<repositories>
|
|
||||||
<repository>
|
|
||||||
<id>local-repo</id>
|
|
||||||
<url>file:///root/.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
|
runs-on: ubuntu
|
||||||
steps:
|
steps:
|
||||||
- name: 拉取代码仓库
|
- name: 拉取代码仓库
|
||||||
uses: http://git.missmoc.top/mocheng/checkout@v4
|
uses: http://git.missmoc.top/mocheng/checkout@v4
|
||||||
|
|
||||||
- name: 配置环境变量(绝对路径)
|
- 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
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<settings>
|
||||||
|
<localRepository>$HOME/.m2/repository</localRepository>
|
||||||
|
<profiles>
|
||||||
|
<profile>
|
||||||
|
<id>multi-repo</id>
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>local-repo</id>
|
||||||
|
<url>file://$HOME/.m2/repository</url>
|
||||||
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>dromara-releases</id>
|
||||||
|
<url>https://maven.dromara.org/repository/releases/</url>
|
||||||
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>aliyun-public</id>
|
||||||
|
<url>https://maven.aliyun.com/repository/public</url>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
|
<activeProfiles>
|
||||||
|
<activeProfile>multi-repo</activeProfile>
|
||||||
|
</activeProfiles>
|
||||||
|
</settings>
|
||||||
|
EOF
|
||||||
|
|
||||||
|
- name: 手动安装必要BOM依赖
|
||||||
|
run: |
|
||||||
|
mkdir -p /tmp/maven-dependencies
|
||||||
|
|
||||||
|
declare -A BOM_ARTIFACTS=(
|
||||||
|
["ruoyi-common-alibaba-bom"]="2.4.0"
|
||||||
|
["ruoyi-common-bom"]="2.4.0"
|
||||||
|
["ruoyi-api-bom"]="2.4.0"
|
||||||
|
)
|
||||||
|
|
||||||
|
for artifact in "${!BOM_ARTIFACTS[@]}"; do
|
||||||
|
version=${BOM_ARTIFACTS[$artifact]}
|
||||||
|
group_id="org.dromara"
|
||||||
|
local_path="$HOME/.m2/repository/${group_id//.//}/$artifact/$version/$artifact-$version.pom"
|
||||||
|
|
||||||
|
if [ -f "$local_path" ]; then
|
||||||
|
echo "本地已存在 $artifact:$version,跳过"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
repos=(
|
||||||
|
"https://maven.dromara.org/repository/releases"
|
||||||
|
"https://maven.aliyun.com/repository/public"
|
||||||
|
)
|
||||||
|
|
||||||
|
downloaded=false
|
||||||
|
for repo in "${repos[@]}"; do
|
||||||
|
url="$repo/${group_id//.//}/$artifact/$version/$artifact-$version.pom"
|
||||||
|
if wget -q -O "/tmp/maven-dependencies/$artifact-$version.pom" "$url"; then
|
||||||
|
"$MAVEN_HOME/bin/mvn" install:install-file \
|
||||||
|
-Dfile="/tmp/maven-dependencies/$artifact-$version.pom" \
|
||||||
|
-DgroupId="$group_id" \
|
||||||
|
-DartifactId="$artifact" \
|
||||||
|
-Dversion="$version" \
|
||||||
|
-Dpackaging=pom
|
||||||
|
downloaded=true
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
- 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 install -N -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: |
|
run: |
|
||||||
export JAVA_HOME="/java17/java17"
|
export JAVA_HOME="/java17/java17"
|
||||||
export MAVEN_HOME="/maven/apache-maven-3.9.11"
|
export MAVEN_HOME="/maven/apache-maven-3.9.11"
|
||||||
@ -106,9 +141,8 @@ jobs:
|
|||||||
echo "MAVEN_HOME=$MAVEN_HOME" >> $GITHUB_ENV
|
echo "MAVEN_HOME=$MAVEN_HOME" >> $GITHUB_ENV
|
||||||
echo "$MAVEN_HOME/bin" >> $GITHUB_PATH
|
echo "$MAVEN_HOME/bin" >> $GITHUB_PATH
|
||||||
|
|
||||||
- name: 构建并安装通用模块
|
- name: 构建通用模块(仅本地使用,不上传)
|
||||||
run: |
|
run: |
|
||||||
# 通用模块列表(根据实际项目结构调整)
|
|
||||||
COMMON_MODULES=(
|
COMMON_MODULES=(
|
||||||
"ruoyi-common"
|
"ruoyi-common"
|
||||||
"ruoyi-api"
|
"ruoyi-api"
|
||||||
@ -118,25 +152,24 @@ jobs:
|
|||||||
)
|
)
|
||||||
|
|
||||||
for module in "${COMMON_MODULES[@]}"; do
|
for module in "${COMMON_MODULES[@]}"; do
|
||||||
# 模块POM的绝对路径
|
|
||||||
MODULE_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${module}/pom.xml"
|
MODULE_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${module}/pom.xml"
|
||||||
echo "=== 构建模块:$module ==="
|
|
||||||
echo "POM路径:$MODULE_POM_ABSOLUTE_PATH"
|
|
||||||
|
|
||||||
if [ ! -f "$MODULE_POM_ABSOLUTE_PATH" ]; then
|
if [ ! -f "$MODULE_POM_ABSOLUTE_PATH" ]; then
|
||||||
echo "警告:模块 $module 的POM文件不存在,跳过"
|
echo "警告:模块 $module 不存在,跳过"
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 使用Maven绝对路径执行命令
|
retries=3
|
||||||
"$MAVEN_HOME/bin/mvn" clean install -U -DskipTests -f "$MODULE_POM_ABSOLUTE_PATH"
|
count=0
|
||||||
|
until "$MAVEN_HOME/bin/mvn" clean install -U -DskipTests -f "$MODULE_POM_ABSOLUTE_PATH"; do
|
||||||
# 验证模块是否安装成功
|
count=$((count + 1))
|
||||||
MODULE_GROUP_ID="org.dromara"
|
if [ $count -ge $retries ]; then
|
||||||
ls -la ~/.m2/repository/"${MODULE_GROUP_ID//.//}"/"$module"/
|
echo "错误:模块 $module 构建失败"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
sleep 10
|
||||||
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
# 第三步:分服务构建镜像并上传(依赖通用模块)
|
|
||||||
build-and-push-services:
|
build-and-push-services:
|
||||||
needs: build-common-modules
|
needs: build-common-modules
|
||||||
runs-on: ubuntu
|
runs-on: ubuntu
|
||||||
@ -161,7 +194,7 @@ jobs:
|
|||||||
- name: 拉取代码仓库
|
- name: 拉取代码仓库
|
||||||
uses: http://git.missmoc.top/mocheng/checkout@v4
|
uses: http://git.missmoc.top/mocheng/checkout@v4
|
||||||
|
|
||||||
- name: 配置环境变量(绝对路径)
|
- name: 配置环境变量
|
||||||
run: |
|
run: |
|
||||||
export JAVA_HOME="/java17/java17"
|
export JAVA_HOME="/java17/java17"
|
||||||
export MAVEN_HOME="/maven/apache-maven-3.9.11"
|
export MAVEN_HOME="/maven/apache-maven-3.9.11"
|
||||||
@ -170,25 +203,16 @@ jobs:
|
|||||||
echo "MAVEN_HOME=$MAVEN_HOME" >> $GITHUB_ENV
|
echo "MAVEN_HOME=$MAVEN_HOME" >> $GITHUB_ENV
|
||||||
echo "$MAVEN_HOME/bin" >> $GITHUB_PATH
|
echo "$MAVEN_HOME/bin" >> $GITHUB_PATH
|
||||||
|
|
||||||
- name: 构建服务模块
|
- name: 构建服务模块(仅用于镜像构建,不上传JAR)
|
||||||
run: |
|
run: |
|
||||||
SERVICE_NAME="${{ matrix.service }}"
|
SERVICE_NAME="${{ matrix.service }}"
|
||||||
# 服务POM的绝对路径
|
|
||||||
SERVICE_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/pom.xml"
|
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
|
if [ ! -f "$SERVICE_POM_ABSOLUTE_PATH" ]; then
|
||||||
echo "错误:服务 $SERVICE_NAME 的POM文件不存在"
|
echo "错误:服务 $SERVICE_NAME 的POM文件不存在"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 使用Maven绝对路径执行打包命令
|
|
||||||
"$MAVEN_HOME/bin/mvn" clean package -U -DskipTests -f "$SERVICE_POM_ABSOLUTE_PATH"
|
"$MAVEN_HOME/bin/mvn" clean package -U -DskipTests -f "$SERVICE_POM_ABSOLUTE_PATH"
|
||||||
|
|
||||||
# 验证构建产物
|
|
||||||
echo "=== 构建产物 ==="
|
|
||||||
ls -la "${GITHUB_WORKSPACE}/${SERVICE_NAME}/target/"
|
|
||||||
|
|
||||||
- name: 配置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
|
||||||
@ -208,13 +232,11 @@ jobs:
|
|||||||
|
|
||||||
if [ -f "$DOCKERFILE_ABSOLUTE_PATH" ]; then
|
if [ -f "$DOCKERFILE_ABSOLUTE_PATH" ]; then
|
||||||
echo "dockerfile_path=$DOCKERFILE_ABSOLUTE_PATH" >> $GITHUB_OUTPUT
|
echo "dockerfile_path=$DOCKERFILE_ABSOLUTE_PATH" >> $GITHUB_OUTPUT
|
||||||
echo "使用Dockerfile:$DOCKERFILE_ABSOLUTE_PATH"
|
|
||||||
else
|
else
|
||||||
echo "dockerfile_path=${GITHUB_WORKSPACE}/Dockerfile" >> $GITHUB_OUTPUT
|
echo "dockerfile_path=${GITHUB_WORKSPACE}/Dockerfile" >> $GITHUB_OUTPUT
|
||||||
echo "使用根目录Dockerfile:${GITHUB_WORKSPACE}/Dockerfile"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: 构建并推送Docker镜像
|
- name: 构建并推送Docker镜像(仅推送镜像,不上传JAR)
|
||||||
uses: http://git.missmoc.top/mocheng/build-push-action@v5
|
uses: http://git.missmoc.top/mocheng/build-push-action@v5
|
||||||
with:
|
with:
|
||||||
context: "${GITHUB_WORKSPACE}"
|
context: "${GITHUB_WORKSPACE}"
|
||||||
|
Loading…
Reference in New Issue
Block a user