如何在GitHub Actions的startswith表达式中引用环境变量?
问题分析与解决
你的错误出在**if表达式里引用环境变量的语法**上,GitHub Actions的表达式体系和shell变量引用规则不一样,不能用$HEAD_REF这种写法。
错误原因
GitHub表达式中,引用环境变量需要通过env上下文访问,格式是env.变量名;另外你这里其实没必要额外定义HEAD_REF环境变量,直接用github.head_ref上下文更直接。
修正方案
方案1:直接使用上下文(推荐)
不需要额外定义环境变量,直接在if条件里调用github.head_ref:
if: ${{ !startsWith(github.head_ref, 'random/name') }} steps: ...
方案2:正确引用环境变量
如果一定要保留环境变量的定义,if条件里要通过env上下文访问:
env: HEAD_REF: ${{ github.head_ref }} if: ${{ !startsWith(env.HEAD_REF, 'random/name') }} steps: ...
补充说明
GitHub表达式的语法规则里,所有变量(包括环境变量、上下文变量)都要通过对应的上下文对象访问,不能用shell的$变量写法。if条件属于表达式上下文,必须遵循这个规则。
内容的提问来源于stack exchange,提问作者aids
相关产品推荐
相关产品推荐

