【问题标题】:format TAG release ref for Github Workflow Action为 Github Workflow Action 格式化 TAG 发布参考
【发布时间】:2020-12-05 14:46:33
【问题描述】:

我想用 v 作为前缀和产品类型作为后缀来标记我的版本。 例如。初始版本 v1.0.0-alpha01-internalv1.0.0-alpha01-external

现在我正在运行一个 GitHub 操作工作流来发布一个版本。

# The GITHUB_REF tag comes in the format 'refs/tags/xxx'.
    # So if we split on '/' and take the 3rd value, we can get the release name.
    run: |
      NEW_VERSION=$(echo "${GITHUB_REF}" | cut -d "/" -f3)
      echo "New version: ${NEW_VERSION}"

使用上面的代码 sn-p,我得到了我的新版本 v1.0.0-alpha01-internalv1.0.0-alpha01-external 现在我没有希望我的版本与 TAG 相同,因此我想从发布 TAG 的开头删除 v 并从结尾删除 -internal 或 -external。

新版本的预期是1.0.0-alpha01

【问题讨论】:

    标签: yaml pipeline release continuous-deployment github-actions


    【解决方案1】:

    NEW_VERSION=$(echo "${GITHUB_REF}" | cut -d "/" -f3) | cut -c 2- | cut -c 1-13 可能吗?

    【讨论】:

      【解决方案2】:

      此时您的问题只是 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'
      

      【讨论】:

        猜你喜欢
        • 2020-09-19
        • 2020-08-24
        • 1970-01-01
        • 1970-01-01
        • 2021-10-24
        • 1970-01-01
        • 2021-10-08
        • 2015-06-14
        • 1970-01-01
        相关资源
        最近更新 更多