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

能否在GitHub Actions环境变量定义中使用hashFiles函数?

在GitHub Actions环境变量中使用hashFiles函数的问题

直接说结论:你示例里的写法无效,但调整语法后可以实现。

为什么原写法不生效

你在env里把hashFiles('**/yarn.lock')用引号包裹的话,GitHub Actions会将其视为普通字符串,不会执行这个函数。最终缓存key里拿到的不是yarn.lock的实际哈希值,而是字面量hashFiles('**/yarn.lock'),完全起不到根据文件内容生成动态缓存key的作用。

正确的实现方式

要让hashFiles函数被正常解析执行,必须把它放在GitHub Actions的表达式语法${{ ... }}中,再赋值给环境变量:

env:
  HASH_YARN_LOCK: ${{ hashFiles('**/yarn.lock') }}

- uses: actions/cache@v3
  with:
    path: |
      path/to/dependencies
      some/other/dependencies
    key: ${{ runner.os }}-${{ env.HASH_YARN_LOCK }}

这样环境变量HASH_YARN_LOCK就会被赋值为yarn.lock文件的实际哈希值,后续缓存key也能随文件内容变化自动更新。

验证方法

如果不确定环境变量是否正确获取了哈希值,可以加一个步骤打印出来确认:

- name: 打印哈希值
  run: echo "Yarn.lock哈希值: $HASH_YARN_LOCK"

内容的提问来源于stack exchange,提问作者Paul Razvan Berg

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 11:32:08