问题描述
我想用v作为前缀,产品类型作为后缀标记我的发行版。 例如。初始版本 v1.0.0-alpha01-内部或 v1.0.0-alpha01-外部
现在,我正在运行GitHub动作工作流来发布发行版。
map
使用上面的代码片段,我得到了我的新版本 v1.0.0-alpha01-internal 或 v1.0.0-alpha01-external ,现在我不需要我的版本与TAG相同,因此我想从发布TAG的开头开始剪切v,从-tag的末尾剪切-internal或-external。
期望新版本为 1.0.0-alpha01
解决方法
NEW_VERSION=$(echo "${GITHUB_REF}" | cut -d "/" -f3) | cut -c 2- | cut -c 1-13
可能是
这时,您的问题仅在于Bash中的字符串操作,与GH或GH Actions无关。
因此,您可以找到在Bash中修改字符串的最佳方法。我建议您从这里开始:
https://www.baeldung.com/linux/bash-string-manipulation
TAG_VERSION=v1.0.0-alpha01-internal
TAG_VERSION=$(echo ${TAG_VERSION//v/})
TAG_VERSION=$(echo ${TAG_VERSION//-internal/})
TAG_VERSION=$(echo ${TAG_VERSION//-external/})
或使用sed
这里可能会使用更好的正则表达式,但是您可以根据所有用例进行决定
echo $TAG_VERSION | sed 's/-internal//g' | sed 's/-external//g' | sed 's/v//g'