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

如何在GitHub Actions的Job if条件中正确拼接字符串?

GitHub Actions Job if条件中正确拼接字符串的方法

正确写法

有两种合法的表达式写法可以实现字符串拼接:

  1. 使用format函数(推荐)
if: github.ref == format('refs/heads/{0}', env.RELEASE_BRANCH_NAME)

在GitHub Actions的表达式上下文(if条件属于这类上下文)中,无需用${{ }}包裹环境变量,直接通过env.VAR_NAME引用即可,format函数会自动将第二个参数填入占位符{0}的位置。

  1. 使用字符串拼接运算符+
if: github.ref == 'refs/heads/' + env.RELEASE_BRANCH_NAME

直接用+连接字符串字面量和环境变量,这也是表达式语法支持的写法。

你尝试的写法错误原因

  • 写法1:if: github.ref == 'refs/heads/'${{ env.RELEASE_BRANCH_NAME }}
    错误:在if的表达式上下文中,不能混合使用字符串字面量和${{ }}插值语法,整个条件需遵循表达式规则,而非shell风格拼接。

  • 写法2:if: github.ref == 'refs/heads/'$RELEASE_BRANCH_NAME
    错误:$RELEASE_BRANCH_NAME是shell变量的引用方式,不适用于GitHub Actions的表达式上下文,表达式中需用env.RELEASE_BRANCH_NAME引用环境变量。

  • 写法3:if: github.ref == format('refs/heads/{0}', ${{ env.RELEASE_BRANCH_NAME }})
    错误:format函数的参数本身就在表达式上下文内,无需额外用${{ }}包裹环境变量,重复包裹会导致语法解析错误。

额外注意

你的工作流中runs-on: [ linux ]写法不规范,Linux环境的runner应指定具体的镜像,比如runs-on: ubuntu-latest或runs-on: ubuntu-22.04。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 14:43:13