From 2f84d3d765240ad7b92338d823e79fc3c98de27c Mon Sep 17 00:00:00 2001 From: admin Date: Mon, 1 Dec 2025 10:32:15 +0800 Subject: [PATCH] [run build] --- .gitea/workflows/develop_build_test.yaml | 133 +++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 .gitea/workflows/develop_build_test.yaml diff --git a/.gitea/workflows/develop_build_test.yaml b/.gitea/workflows/develop_build_test.yaml new file mode 100644 index 00000000..2c79f16f --- /dev/null +++ b/.gitea/workflows/develop_build_test.yaml @@ -0,0 +1,133 @@ +name: 手动 AiDA back-java Develop 分支构建部署 +on: + workflow_dispatch: + push: + branches: + - dev/3.1_release_merge + +jobs: + build_and_deploy: + runs-on: ubuntu-latest + if: "contains(github.event.head_commit.message, '[run build]')" + + + permissions: + contents: read + packages: write + + env: + REMOTE_DEPLOY_PATH: /workspace/workspace_aida/DevelopVersion-test/develop-version-aida-back + + steps: + - name: 1.检出代码 + uses: actions/checkout@v4 + with: + ref: dev/3.1_release_merge + + - name: Set up JDK 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + + - name: 2.设置JAVA Maven 环境 + run: | + # 适配act的root用户和Gitea Runner普通用户 + SUDO="" + [ "$(id -u)" != "0" ] && SUDO="sudo" + + # 安装依赖 + $SUDO apt update && $SUDO apt install -y wget tar --no-install-recommends + + # 下载并安装Maven + MAVEN_VERSION="3.9.11" + MAVEN_TAR="apache-maven-${MAVEN_VERSION}-bin.tar.gz" + MAVEN_URL="https://archive.apache.org/dist/maven/maven-3/${MAVEN_VERSION}/binaries/${MAVEN_TAR}" + wget --no-verbose -O /tmp/${MAVEN_TAR} ${MAVEN_URL} + + # 解压+软链接 + $SUDO tar -xzf /tmp/${MAVEN_TAR} -C /usr/local/ + $SUDO ln -sf /usr/local/apache-maven-${MAVEN_VERSION} /usr/local/maven + + # 配置PATH + echo "/usr/local/maven/bin" >> $GITHUB_PATH + export PATH="/usr/local/maven/bin:$PATH" + + # 验证 + mvn -v + + - name: 3.构建jar包 + run: mvn -B clean package -DskipTests --file pom.xml + + - name: 4.生成Dockerfile + run: | + # 写入Dockerfile内容 + cat > Dockerfile << 'EOF' + FROM openjdk:8 + VOLUME /tmp + RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime + RUN echo 'Asia/Shanghai' > /etc/timezone + ADD ./target/aida-0.0.1-SNAPSHOT.jar /app.jar + ENTRYPOINT ["java","-jar","/app.jar"] + # 验证Dockerfile生成 + echo "Dockerfile内容:" + cat Dockerfile + + - name: 5.生成docker-compose.yml + run: | + # 写入docker-compose.yml内容 + cat > docker-compose.yml << 'EOF' + version: '3' + services: + aida_back: + container_name: develop-version-aida-back-test + build: . + volumes: + # 数据挂载 + - ./log:/log + ports: + - '10099:5567' + restart: always + EOF + # 验证docker-compose.yml生成 + echo "docker-compose.yml内容:" + cat docker-compose.yml + + - name: 6.同步文件到远程服务器 + uses: appleboy/scp-action@v0.1.7 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USER }} + key: ${{ secrets.SSH_KEY }} + source: "./target/*.jar,./Dockerfile,./docker-compose.yml" + target: ${{ env.REMOTE_DEPLOY_PATH }} + ssh_options: "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" + strip_components: 0 + + - name: 7.部署和运行服务 + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USER }} + key: ${{ secrets.SSH_KEY }} + script: | + echo "===== 开始部署服务 =====" + cd ${{ env.REMOTE_DEPLOY_PATH }} + + # 停止旧容器(不存在则跳过) + echo "停止旧容器..." + docker compose down || true + + # 清理无效镜像(释放空间) + docker system prune -f + + # 构建并启动新容器 + echo "构建Docker镜像..." + docker compose build --no-cache + echo "启动服务..." + docker compose up -d + + # 验证服务状态 + echo "验证容器状态..." + docker compose ps + echo "✅ 部署完成!" \ No newline at end of file