diff --git a/.woodpecker/my-first-workflow.yaml b/.woodpecker/my-first-workflow.yaml index a5639882..06735b75 100644 --- a/.woodpecker/my-first-workflow.yaml +++ b/.woodpecker/my-first-workflow.yaml @@ -66,12 +66,48 @@ steps: depends_on: [prepare] commands: - | + #!/bin/bash + # 强制开启输出(避免CI环境静默) + set -o pipefail # 管道命令失败则整体失败 + echo "===== 开始生成构建版本号 =====" # 初始输出,确保脚本已执行 + + # 1. 获取Git短版本号(取消错误屏蔽,让失败原因显示) + echo "🔍 正在获取Git提交短版本号..." VERSION="$(git rev-parse --short=8 HEAD)" - git rev-parse --short=8 HEAD - echo "BUILD_VERSION=${VERSION}" >> "$CI_ENV_FILE" + + # 2. 检查版本号是否获取成功(无输出的核心排查点) + if [ -z "$VERSION" ]; then + echo "❌ 版本号获取失败!原因:" + echo " - 可能当前目录不是Git仓库" + echo " - 可能未安装git命令" + echo " - 可能Git仓库无提交记录" + # 手动输出一个兜底版本号(避免完全无输出) + VERSION="unknown-$(date +%Y%m%d%H%M%S)" + echo "📌 兜底版本号:${VERSION}" + else + echo "✅ 成功获取Git版本号:${VERSION}" + fi + + # 3. 检查CI_ENV_FILE(即使未定义,也输出提示,不直接exit) + echo "🔍 检查CI_ENV_FILE环境变量:$CI_ENV_FILE" + if [ -z "$CI_ENV_FILE" ]; then + echo "⚠️ 警告:CI_ENV_FILE未定义,跳过写入环境文件" + else + # 尝试写入文件,失败也输出原因 + if echo "BUILD_VERSION=${VERSION}" >> "$CI_ENV_FILE"; then + echo "✅ 已写入版本号到${CI_ENV_FILE}:BUILD_VERSION=${VERSION}" + else + echo "❌ 写入${CI_ENV_FILE}失败!请检查文件权限/路径" + fi + fi + + # 4. 强制输出版本号(核心诉求:确保有输出) + echo "===== 构建版本号最终输出 =====" echo "构建版本号:${VERSION}" echo "✅ 生成版本号:${VERSION}" + + # ========== 4. 编译Logic服务(完全参考GitHub Actions编译配置) ========== build_logic: image: golang:1.25