Some checks failed
/ build-parent-pom (push) Successful in 2m9s
/ build-common-modules (push) Successful in 1m48s
/ build-and-push-services (ruoyi-auth) (push) Failing after 48s
/ build-and-push-services (ruoyi-gateway) (push) Failing after 1m17s
/ build-and-push-services (ruoyi-modules/Property) (push) Failing after 1m30s
/ build-and-push-services (ruoyi-modules/Sis) (push) Failing after 26s
/ build-and-push-services (ruoyi-modules/ruoyi-gen) (push) Failing after 1m7s
/ build-and-push-services (ruoyi-modules/ruoyi-job) (push) Failing after 1m17s
/ build-and-push-services (ruoyi-modules/ruoyi-resource) (push) Failing after 1m10s
/ build-and-push-services (ruoyi-modules/ruoyi-system) (push) Failing after 1m18s
/ build-and-push-services (ruoyi-modules/ruoyi-workflow) (push) Failing after 1m19s
/ build-and-push-services (ruoyi-seata-server) (push) Failing after 17s
/ build-and-push-services (ruoyi-sentinel-dashboard) (push) Failing after 18s
/ build-and-push-services (ruoyi-snailjob-server) (push) Failing after 20s
/ build-and-push-services (ruoyi-visual/ruoyi-monitor) (push) Has been cancelled
/ build-and-push-services (ruoyi-visual/ruoyi-nacos) (push) Has been cancelled
213 lines
7.1 KiB
YAML
213 lines
7.1 KiB
YAML
run-name: ${{ gitea.actor }} 构建镜像并推送(不含JAR依赖上传)🚀
|
||
on:
|
||
push:
|
||
branches:
|
||
- master
|
||
|
||
jobs:
|
||
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>/root/.m2/repository</localRepository>
|
||
<profiles>
|
||
<profile>
|
||
<id>multi-repo</id>
|
||
<repositories>
|
||
<repository>
|
||
<id>local-repo</id>
|
||
<url>file:///root/.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 install -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 compile 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
|
||
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 }}"
|
||
SERVICE_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/pom.xml"
|
||
if [ ! -f "$SERVICE_POM_ABSOLUTE_PATH" ]; then
|
||
echo "错误:服务 $SERVICE_NAME 的POM文件不存在"
|
||
exit 1
|
||
fi
|
||
|
||
"$MAVEN_HOME/bin/mvn" clean package -U -DskipTests -f "$SERVICE_POM_ABSOLUTE_PATH"
|
||
|
||
- name: 配置Docker允许HTTP私有仓库
|
||
run: |
|
||
# 配置Docker守护进程接受HTTP私有仓库
|
||
sudo mkdir -p /etc/docker
|
||
echo '{ "insecure-registries": ["172.100.10.45:3000"] }' | sudo tee /etc/docker/daemon.json
|
||
# 重启Docker使配置生效
|
||
sudo systemctl restart docker
|
||
# 验证配置
|
||
docker info | grep -A 10 "Insecure Registries"
|
||
|
||
- name: 登录到私有容器仓库
|
||
run: |
|
||
echo "${{ secrets.REGISTRY_PASS }}" | docker login ${{ secrets.REGISTRY_URL }} -u ${{ secrets.REGISTRY_USER }} --password-stdin
|
||
|
||
- name: 构建Docker镜像
|
||
run: |
|
||
SERVICE_NAME="${{ matrix.service }}"
|
||
# 替换路径中的斜杠为连字符,避免镜像标签中的路径问题
|
||
SANITIZED_SERVICE_NAME=$(echo "$SERVICE_NAME" | tr '/' '-')
|
||
IMAGE_TAG="172.100.10.45:3000/by2025/smartparks/${SANITIZED_SERVICE_NAME}:latest"
|
||
|
||
# 确定Dockerfile路径
|
||
if [ -f "${GITHUB_WORKSPACE}/${SERVICE_NAME}/Dockerfile" ]; then
|
||
DOCKERFILE_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/Dockerfile"
|
||
else
|
||
DOCKERFILE_PATH="${GITHUB_WORKSPACE}/Dockerfile"
|
||
fi
|
||
|
||
# 使用原生docker build命令构建镜像
|
||
docker build -t "$IMAGE_TAG" -f "$DOCKERFILE_PATH" "${GITHUB_WORKSPACE}"
|
||
|
||
# 保存镜像标签供后续步骤使用
|
||
echo "IMAGE_TAG=$IMAGE_TAG" >> $GITHUB_ENV
|
||
|
||
- name: 推送Docker镜像到私有仓库
|
||
run: |
|
||
# 推送镜像
|
||
docker push "$IMAGE_TAG"
|
||
|
||
# 登出仓库
|
||
docker logout ${{ secrets.REGISTRY_URL }}
|