From 77dcc1bed286ea0b6c05d76e3be25d4406e4b08f Mon Sep 17 00:00:00 2001 From: Lyda <1829913225@qq.com> Date: Thu, 21 Aug 2025 14:58:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=20action.yml=20?= =?UTF-8?q?=E6=96=87=E4=BB=B6=EF=BC=8C=E7=BB=9F=E4=B8=80=E5=BC=95=E5=8F=B7?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=EF=BC=8C=E5=A2=9E=E5=BC=BA=20Git=20=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E8=8E=B7=E5=8F=96=E9=80=BB=E8=BE=91=EF=BC=8C=E7=A1=AE?= =?UTF-8?q?=E4=BF=9D=E5=9C=A8=20GitHub=20Actions=20=E4=B8=AD=E6=AD=A3?= =?UTF-8?q?=E7=A1=AE=E5=A4=84=E7=90=86=E6=A0=87=E7=AD=BE=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- trigger-version/action.yml | 58 +++++++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 20 deletions(-) diff --git a/trigger-version/action.yml b/trigger-version/action.yml index a59757c..0be9a3d 100644 --- a/trigger-version/action.yml +++ b/trigger-version/action.yml @@ -1,42 +1,42 @@ -name: 'Trigger Version Info' -description: '获取触发版本信息,支持标签触发、版本分支触发和常规分支触发' -author: 'Your Organization' +name: "Trigger Version Info" +description: "获取触发版本信息,支持标签触发、版本分支触发和常规分支触发" +author: "Your Organization" inputs: version-prefix: - description: '版本前缀,用于匹配版本标签或分支(默认:v)' + description: "版本前缀,用于匹配版本标签或分支(默认:v)" required: false - default: 'v' + default: "v" use-latest-version: - description: '在非版本触发时是否使用当前分支最新的版本标签(默认:false)' + description: "在非版本触发时是否使用当前分支最新的版本标签(默认:false)" required: false - default: 'false' + default: "false" outputs: ref-type: - description: '引用类型 (tag/branch)' + description: "引用类型 (tag/branch)" value: ${{ steps.get-version-info.outputs.ref_type }} ref-name: - description: '引用名称' + description: "引用名称" value: ${{ steps.get-version-info.outputs.ref_name }} is-version-trigger: - description: '是否为版本触发(true/false)' + description: "是否为版本触发(true/false)" value: ${{ steps.get-version-info.outputs.is_version_trigger }} trigger-version: - description: '触发的版本号(标准化为v开头的格式)' + description: "触发的版本号(标准化为v开头的格式)" value: ${{ steps.get-version-info.outputs.trigger_version }} trigger-source: - description: '触发源(tag/branch)' + description: "触发源(tag/branch)" value: ${{ steps.get-version-info.outputs.trigger_source }} full-ref: - description: '完整的 Git 引用' + description: "完整的 Git 引用" value: ${{ steps.get-version-info.outputs.full_ref }} version-with-dash: - description: '版本号,点替换为横线(例如:v1.2.3 -> v1-2-3)' + description: "版本号,点替换为横线(例如:v1.2.3 -> v1-2-3)" value: ${{ steps.get-version-info.outputs.version_with_dash }} runs: - using: 'composite' + using: "composite" steps: - name: 获取触发版本信息 id: get-version-info @@ -89,7 +89,25 @@ runs: # 检查git仓库是否可用 if git rev-parse --git-dir > /dev/null 2>&1; then - LATEST_TAG=$(git tag --list "${VERSION_PREFIX}*" --sort=-version:refname 2>/dev/null | head -1) + echo "✅ Git仓库可用,开始获取标签..." + + # 确保获取所有标签信息(GitHub Actions 默认是浅克隆) + echo "📥 获取远程标签信息..." + git fetch --tags --quiet 2>/dev/null || echo "⚠️ 获取远程标签失败,继续使用本地标签" + + # 获取所有匹配的标签 + echo "🏷️ 查找匹配前缀 '${VERSION_PREFIX}' 的标签..." + ALL_TAGS=$(git tag --list "${VERSION_PREFIX}*" 2>/dev/null) + echo "找到的标签: $ALL_TAGS" + + # 获取最新的版本标签 + if command -v sort >/dev/null 2>&1; then + # 使用 sort 命令进行版本排序 + LATEST_TAG=$(echo "$ALL_TAGS" | sort -V | tail -1) + else + # 如果没有 sort -V,使用 git 的排序 + LATEST_TAG=$(git tag --list "${VERSION_PREFIX}*" --sort=-version:refname 2>/dev/null | head -1) + fi if [[ -n "$LATEST_TAG" ]]; then # 找到了版本标签,使用它 @@ -101,14 +119,14 @@ runs: IS_VERSION_TRIGGER=true else # 没有找到版本标签 - echo "⚠️ 未找到版本标签,使用空版本" + echo "⚠️ 未找到匹配前缀 '${VERSION_PREFIX}' 的版本标签,使用空版本" IS_VERSION_TRIGGER=false TRIGGER_VERSION="" VERSION_WITH_DASH="" fi else # Git仓库不可用 - echo "⚠️ Git仓库不可用,使用空版本" + echo "❌ Git仓库不可用,使用空版本" IS_VERSION_TRIGGER=false TRIGGER_VERSION="" VERSION_WITH_DASH="" @@ -139,5 +157,5 @@ runs: echo "trigger_source=$TRIGGER_SOURCE" >> $GITHUB_OUTPUT branding: - icon: 'git-branch' - color: 'blue' + icon: "git-branch" + color: "blue"