Files
xgj/trigger-version/action.yml

92 lines
3.2 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: 'Trigger Version Info'
description: '获取触发版本信息,支持标签触发、版本分支触发和常规分支触发'
author: 'Your Organization'
inputs:
version-prefix:
description: '版本前缀用于匹配版本标签或分支默认v'
required: false
default: 'v'
outputs:
ref-type:
description: '引用类型 (tag/branch)'
value: ${{ steps.get-version-info.outputs.ref_type }}
ref-name:
description: '引用名称'
value: ${{ steps.get-version-info.outputs.ref_name }}
is-version-trigger:
description: '是否为版本触发true/false'
value: ${{ steps.get-version-info.outputs.is_version_trigger }}
trigger-version:
description: '触发的版本号(去除前缀后的版本)'
value: ${{ steps.get-version-info.outputs.trigger_version }}
trigger-source:
description: '触发源tag/branch'
value: ${{ steps.get-version-info.outputs.trigger_source }}
full-ref:
description: '完整的 Git 引用'
value: ${{ steps.get-version-info.outputs.full_ref }}
runs:
using: 'composite'
steps:
- name: 获取触发版本信息
id: get-version-info
shell: bash
run: |
# 获取GitHub上下文信息
echo "触发方式: ${{ github.event_name }}"
echo "引用类型: ${{ github.ref_type }}"
echo "引用名称: ${{ github.ref_name }}"
echo "完整引用: ${{ github.ref }}"
REF_TYPE="${{ github.ref_type }}"
REF_NAME="${{ github.ref_name }}"
FULL_REF="${{ github.ref }}"
VERSION_PREFIX="${{ inputs.version-prefix }}"
# 判断是否为标签触发
if [[ "$REF_TYPE" == "tag" ]]; then
# 从标签名提取版本号 (v1.2.3 -> 1.2.3)
if [[ "$REF_NAME" == ${VERSION_PREFIX}* ]]; then
TRIGGER_VERSION=${REF_NAME#${VERSION_PREFIX}}
else
TRIGGER_VERSION=$REF_NAME
fi
echo "🏷️ 标签触发: $REF_NAME"
echo "版本号: $TRIGGER_VERSION"
IS_VERSION_TRIGGER=true
TRIGGER_SOURCE=tag
elif [[ "$REF_TYPE" == "branch" && "$REF_NAME" == ${VERSION_PREFIX}* ]]; then
# 版本分支触发
TRIGGER_VERSION=${REF_NAME#${VERSION_PREFIX}}
echo "🔄 版本分支触发: $REF_NAME"
echo "版本号: $TRIGGER_VERSION"
IS_VERSION_TRIGGER=true
TRIGGER_SOURCE=branch
else
# 常规分支触发
echo "🆕 常规分支触发: $REF_NAME"
IS_VERSION_TRIGGER=false
TRIGGER_VERSION=""
TRIGGER_SOURCE=branch
fi
# 设置环境变量
echo "IS_VERSION_TRIGGER=$IS_VERSION_TRIGGER" >> $GITHUB_ENV
echo "TRIGGER_VERSION=$TRIGGER_VERSION" >> $GITHUB_ENV
echo "TRIGGER_SOURCE=$TRIGGER_SOURCE" >> $GITHUB_ENV
# 输出到 step outputs
echo "ref_type=$REF_TYPE" >> $GITHUB_OUTPUT
echo "ref_name=$REF_NAME" >> $GITHUB_OUTPUT
echo "full_ref=$FULL_REF" >> $GITHUB_OUTPUT
echo "is_version_trigger=$IS_VERSION_TRIGGER" >> $GITHUB_OUTPUT
echo "trigger_version=$TRIGGER_VERSION" >> $GITHUB_OUTPUT
echo "trigger_source=$TRIGGER_SOURCE" >> $GITHUB_OUTPUT
branding:
icon: 'git-branch'
color: 'blue'