更新 .gitea/workflows/dev.yml
Some checks failed
/ build-parent-pom (push) Successful in 7m26s
/ build-common-modules (push) Failing after 55s
/ 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:
bichangxiong 2025-08-14 02:40:47 +08:00
parent afc0e69319
commit edf514b25d

View File

@ -1,11 +1,132 @@
run-name: ${{ gitea.actor }} 打包并构建镜像 🚀 run-name: ${{ gitea.actor }} 构建镜像并推送不含JAR依赖上传🚀
on: on:
push: push:
branches: branches:
- master - master
jobs: jobs:
build-and-push: 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
<?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>aliyun-public</id>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>multi-repo</activeProfile>
</activeProfiles>
</settings>
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 runs-on: ubuntu
strategy: strategy:
matrix: matrix:
@ -30,80 +151,51 @@ jobs:
- name: 配置环境变量 - name: 配置环境变量
run: | run: |
# 配置JDK和Maven绝对路径
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"
# 验证路径有效性
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=$JAVA_HOME" >> $GITHUB_ENV
echo "$JAVA_HOME/bin" >> $GITHUB_PATH echo "$JAVA_HOME/bin" >> $GITHUB_PATH
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: 构建服务模块
java -version
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>
<mirrors>
<mirror>
<id>huawei</id>
<url>https://mirrors.huaweicloud.com/repository/maven/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
</settings>
EOF
- name: 执行mvn clean package打包
run: | run: |
SERVICE_NAME="${{ matrix.service }}" SERVICE_NAME="${{ matrix.service }}"
POM_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/pom.xml" SERVICE_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/pom.xml"
if [ ! -f "$SERVICE_POM_ABSOLUTE_PATH" ]; then
# 检查POM文件是否存在 echo "错误:服务 $SERVICE_NAME 的POM文件不存在"
if [ ! -f "$POM_PATH" ]; then
echo "错误:$SERVICE_NAME 的POM文件不存在于 $POM_PATH"
exit 1 exit 1
fi fi
# 直接执行打包命令 "$MAVEN_HOME/bin/mvn" clean package -U -DskipTests -f "$SERVICE_POM_ABSOLUTE_PATH"
mvn clean package -U -DskipTests -f "$POM_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
- name: 登录容器仓库 - 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: 构建并推送Docker镜像 - 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
else
echo "dockerfile_path=${GITHUB_WORKSPACE}/Dockerfile" >> $GITHUB_OUTPUT
fi
- 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}"
file: "${{ matrix.service }}/Dockerfile" 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