diff --git a/.gitea/workflows/prod_build_schedule.yaml b/.gitea/workflows/prod_build_schedule.yaml deleted file mode 100644 index 9fd03a1e..00000000 --- a/.gitea/workflows/prod_build_schedule.yaml +++ /dev/null @@ -1,146 +0,0 @@ -name: 定时 AiDA back-java Develop 分支构建部署 -on: - schedule: - # cron为UTC时区,构建时间=部署时间-8小时 {*分 (-8)时 *日 *月 *周} --- - # 示例: 1月1日22点22分触发构建 cron写作 - '22 14 1 1 *' - - cron: '19 7 28 11 *' - -jobs: - build_and_deploy: - runs-on: ubuntu-latest - - permissions: - contents: read - packages: write - - env: - REMOTE_DEPLOY_PATH: /workspace/workspace_aida/DevelopVersion/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: 2.构建jar包 - run: - mvn -B clean package -DskipTests --file pom.xml - - - name: 3.检查 Runner 本地文件 - run: | - echo "当前目录:$(pwd)" - echo "target 目录内容:" - ls -la ./target/ - - # 容错:处理通配符无匹配的情况 - JAR_FILE=$(ls ./target/*.jar 2>/dev/null | head -n1) - if [ -z "$JAR_FILE" ] || [ ! -f "$JAR_FILE" ]; then - echo "❌ Runner 本地无有效 JAR 包!" - exit 1 - fi - - # 检查Docker配置文件 - for FILE in Dockerfile docker-compose.yml; do - if [ ! -f "./$FILE" ]; then - echo "❌ 缺失文件:$FILE" - exit 1 - fi - done - echo "✅ 本地文件校验通过!" - - - name: 4. 同步文件到远程服务器 - 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: 5. 验证远程文件 - uses: appleboy/ssh-action@v1.0.3 - with: - host: ${{ secrets.SERVER_HOST }} - username: ${{ secrets.SERVER_USER }} - key: ${{ secrets.SSH_KEY }} - script: | - echo "===== 远程部署目录文件列表 =====" - ls -la ${{ env.REMOTE_DEPLOY_PATH }} - - # 容错:检查JAR包 - REMOTE_JAR=$(ls ${{ env.REMOTE_DEPLOY_PATH }}/target/*.jar 2>/dev/null | head -n1) - if [ -z "$REMOTE_JAR" ] || [ ! -f "$REMOTE_JAR" ]; then - echo "❌ 远程服务器无有效 JAR 包!" - exit 1 - fi - - # 检查Docker文件 - for FILE in Dockerfile docker-compose.yml; do - if [ ! -f "${{ env.REMOTE_DEPLOY_PATH }}/$FILE" ]; then - echo "❌ 远程缺失文件:$FILE" - exit 1 - fi - done - echo "✅ 远程文件校验通过!" - - - name: 6. 部署和运行服务 - 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