You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Actions中如何全局替换项目名特殊字符为连字符?

解决GitHub Actions中制品名称前缀全局替换特殊字符的问题

你当前的问题出在bash参数替换的语法上:bash里的${var/pattern/replacement}只会执行单次替换,要实现全局替换,得把单斜杠改成双斜杠//,而不是加正则的/g标记(那是sed、awk这类工具的语法)。

修改后的Set artifact prefix步骤代码如下:

- name: Set artifact prefix
  id: artifact_prefix
  run: |
    PROJECT_NAME=${{ matrix.project }}
    # 用双斜杠//实现全局替换所有非允许字符为连字符
    ARTIFACT_PREFIX=${PROJECT_NAME//[^A-Za-z0-9\-]/-}
    echo "::set-output name=lowercase::${ARTIFACT_PREFIX,,}"

这样处理后:

  • 对于Common/Helpers.Tests,会把/和.全部替换成-,再转小写得到common-helpers-tests,符合你的预期。
  • 对于PlaywrightXunitParallel,因为没有特殊字符,结果就是playwrightxunitparallel。

如果后续需要把连续的多个连字符合并成一个(比如遇到Common//Helpers..Tests这种极端情况),可以再加一步处理:

# 合并连续连字符为单个
ARTIFACT_PREFIX=$(echo "$ARTIFACT_PREFIX" | tr -s '-')

内容的提问来源于stack exchange,提问作者Gucu112

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 06:12:36