Merge branch 'master' of http://47.109.37.87:3000/by2025/SmartParks
This commit is contained in:
commit
a6b586836d
@ -1,13 +1,133 @@
|
||||
name: Build and Push Microservices Images
|
||||
|
||||
run-name: ${{ gitea.actor }} 构建镜像并推送(不含JAR依赖上传)🚀
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- [main] # 替换为要监听的分支
|
||||
- master
|
||||
|
||||
jobs:
|
||||
build-and-push:
|
||||
runs-on: ubuntu-latest
|
||||
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
|
||||
strategy:
|
||||
matrix:
|
||||
service:
|
||||
@ -26,41 +146,58 @@ jobs:
|
||||
- ruoyi-sentinel-dashboard
|
||||
- ruoyi-snailjob-server
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v3
|
||||
- name: 拉取代码仓库
|
||||
uses: http://git.missmoc.top/mocheng/checkout@v4
|
||||
|
||||
- name: Set Up JDK
|
||||
uses: actions/setup-java@v3
|
||||
with:
|
||||
java-version: '17' # 按项目实际Java版本调整
|
||||
distribution: 'temurin'
|
||||
- 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: Build Project with Maven
|
||||
run: mvn clean package -DskipTests -f ./${{ matrix.service }}/pom.xml
|
||||
- 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
|
||||
|
||||
- name: Set Up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
"$MAVEN_HOME/bin/mvn" clean package -U -DskipTests -f "$SERVICE_POM_ABSOLUTE_PATH"
|
||||
|
||||
- name: Login to Gitea Container Registry
|
||||
uses: docker/login-action@v2
|
||||
- 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: Determine Dockerfile Path
|
||||
- name: 确定Dockerfile路径
|
||||
id: dockerfile-path
|
||||
run: |
|
||||
if [ "${{ matrix.service }}" = "ruoyi-visual/ruoyi-nacos" ]; then
|
||||
echo "dockerfile_path=./ruoyi-visual/ruoyi-nacos/Dockerfile" >> $GITHUB_OUTPUT
|
||||
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=./${{ matrix.service }}/Dockerfile" >> $GITHUB_OUTPUT
|
||||
echo "dockerfile_path=${GITHUB_WORKSPACE}/Dockerfile" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Build and Push Docker Image
|
||||
uses: docker/build-push-action@v4
|
||||
- name: 构建并推送Docker镜像(仅推送镜像,不上传JAR)
|
||||
uses: http://git.missmoc.top/mocheng/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
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
|
||||
|
@ -14,8 +14,8 @@
|
||||
<module>ruoyi-job</module>
|
||||
<module>ruoyi-resource</module>
|
||||
<module>ruoyi-workflow</module>
|
||||
<module>Property</module>
|
||||
<module>Sis</module>
|
||||
<!-- <module>Property</module>-->
|
||||
<!-- <module>Sis</module>-->
|
||||
</modules>
|
||||
|
||||
<artifactId>ruoyi-modules</artifactId>
|
||||
|
Loading…
Reference in New Issue
Block a user