77 lines
2.5 KiB
YAML
77 lines
2.5 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_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)
|
|
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"
|
|
|
|
# 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
|
|
|