Files
git-tag/action.yml
2025-05-20 22:58:24 +05:00

83 lines
2.9 KiB
YAML

name: "Git tag decribe action"
author: m.shein@reglab.ru
description: "Retrive current tag position "
outputs:
git_tag_desc:
description: ""
value: ${{ steps.extract_git_info.outputs.GIT_TAG_DESC }}
git_branch_name:
description: ""
value: ${{ steps.extract_git_info.outputs.GIT_BRANCH_NAME }}
git_branch_formatted:
description: "Normalized branch name (xx.xx.xx): true or false"
value: ${{ steps.extract_git_info.outputs.GIT_BRANCH_FORMATTED }}
git_build_type:
description: ""
value: ${{ steps.extract_git_info.outputs.GIT_BUILD_TYPE }}
git_sha_short:
description: ""
value: ${{ steps.extract_git_info.outputs.GIT_SHA_SHORT }}
runs:
using: "composite"
steps:
-
name: Extract branch name and tag-description
shell: bash
id: extract_git_info
run: |
set +e
echo "GITHUB_REPOSITORY=$GITHUB_REPOSITORY"
echo "GITHUB_REF_TYPE=$GITHUB_REF_TYPE"
echo "GITHUB_HEAD_REF=$GITHUB_HEAD_REF"
echo "GITHUB_REF=$GITHUB_REF"
# extract branch name and stable/nightly type
if [ ${GITHUB_REF_TYPE} = "tag" ]; then
# extract tag name
GIT_TAG_NAME=$(echo $GITHUB_REF | sed -n -r 's/^refs\/tags\/(.*)$/\1/p')
echo "GIT_TAG_NAME=$GIT_TAG_NAME"
# check the tag name is NUM.NUM.NUM.NUM
echo ${GIT_TAG_NAME} | sed -n -r '/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/!{q1}'
if [ $? -ne 0 ]; then
echo "The unexpected tag name"
exit 1
fi
GIT_BUILD_TYPE="stable"
# extract branch name A.B.C from the tag name A.B.C.D
GIT_BRANCH_NAME=$(echo $GIT_TAG_NAME | sed -n -r 's/^(.*)\.[0-9]+.*/\1/p')
else
GIT_BUILD_TYPE="nightly"
# extract branch name as is
GIT_BRANCH_NAME=$(git branch --show-current)
GIT_BRANCH_FORMATTED=$(echo $GIT_BRANCH_NAME | grep -E '^[0-9]{1}\.[0-9]{2}\.[0-9]{2}$' | wc -l)
fi
# get tag description
GIT_TAG_DESC=$(git describe --tags 2>/dev/null)
# Check Tag
[ -z "${GIT_TAG_DESC}" ] && GIT_TAG_DESC=$GIT_BRANCH_NAME
# get short tag
GIT_SHA_SHORT=$(git rev-parse --short HEAD)
# debug
echo "GIT_TAG_DESC=$GIT_TAG_DESC"
echo "GIT_BUILD_TYPE=$GIT_BUILD_TYPE"
echo "GIT_BRANCH_NAME=$GIT_BRANCH_NAME"
echo "GIT_SHA_SHORT=$GIT_SHA_SHORT"
echo "GIT_BRANCH_FORMATTED=$GIT_BRANCH_FORMATTED"
# export to GITHUB_OUTPUT
echo "GIT_BUILD_TYPE=$GIT_BUILD_TYPE" >> $GITHUB_OUTPUT
echo "GIT_BRANCH_NAME=$GIT_BRANCH_NAME" >> $GITHUB_OUTPUT
echo "GIT_TAG_DESC=$GIT_TAG_DESC" >> $GITHUB_OUTPUT
echo "GIT_SHA_SHORT=$GIT_SHA_SHORT" >> $GITHUB_OUTPUT
echo "GIT_BRANCH_FORMATTED=$GIT_BRANCH_FORMATTED" >> $GITHUB_OUTPUT