如何在 GitHub Actions 表达式语法中引用上下文值?

2023-11-24

我想在其中设置一个环境变量env:GitHub Action 的部分并利用GitHub Actions 的上下文和表达式语法。我试过这个:

jobs:
  build:
    runs-on: ubuntu-latest

    env:
      MYVAR: ${{ format('{0}:{1}', ${{ env.PATH }}, ${{ env.HOME }} ) }}

    steps:
    - name: Check environment
      run: echo $MYVAR

这会导致错误消息:

### ERRORED 10:45:52Z

- Your workflow file was invalid: The pipeline is not valid. .github/workflows/main.yml (Line: 10, Col: 14): Unexpected symbol: '${{'. Located at position 19 within expression: format('{0}:{1}', ${{ env.PATH

这个语法:

    env:
      MYVAR: ${{ format('{0}:{1}', {{ env.PATH }}, {{ env.HOME }} ) }}

结果出现错误:

### ERRORED 13:14:18Z

- Your workflow file was invalid: The pipeline is not valid. .github/workflows/main.yml (Line: 10, Col: 14): Unexpected symbol: '{{'. Located at position 19 within expression: format('{0}:{1}', {{ env.PATH

and:

    env:
      MYVAR: ${{ format('{0}:{1}', env.PATH, env.HOME ) }}

结果出现错误:

### ERRORED 13:16:12Z

- Your workflow file was invalid: The pipeline is not valid. .github/workflows/main.yml (Line: 10, Col: 14): Unrecognized named-value: 'env'. Located at position 19 within expression: format('{0}:{1}', env.PATH, env.HOME )

我知道解决方案如何在 GitHub Actions 中使用 bash 表达式设置环境变量? and Github Actions,如何在作业步骤之间共享计算值?用于设置环境变量,但我想了解表达式语法。


在工作流程开始时,env上下文尚不存在。这就是您收到错误的原因。而且,每项工作的第一步都是空的env上下文,所以即使env存在,打印的结果MYVAR本来就是:.

我通过一些实验得出了上述结论。

env:
  MYVAR: ${{ format('{0}:{1}', env.PATH, env.HOME) }}

您使用的最后一个语法是正确的形式,但是因为env上下文尚不存在,工作流无法运行。

为了向自己证明env第一步上下文实际上是空的,请尝试以下工作:

jobs
  env-dump-context:
    runs-on: ubuntu-latest
    steps:
      - run: echo env is: ${{ toJSON(env) }}

话虽这么说,仍然可以满足您的需求:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - run: printf "MYVAR=${PATH}:${HOME}" | tee --append "$GITHUB_ENV"
      - name: Check environment
        run: echo ${{env.MYVAR}}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 GitHub Actions 表达式语法中引用上下文值? 的相关文章

随机推荐

  • 为数组 x 中的每个元素选择 n 个项目(从泊松分布中抽取)的快速方法

    我在解决遇到的问题时遇到了一些麻烦 我有一个包含价格的数组 gt gt gt x np random randint 10 size 10 array 6 1 7 6 9 0 8 2 1 8 以及 随机 生成的泊松分布到达数组 gt gt
  • Keras ValueError:尺寸必须相等问题

    即使应用了答案和评论中的建议后 尺寸不匹配问题似乎仍然存在 这也是要复制的确切代码和数据文件 https drive google com drive folders 1q67s0VhB O7J8OtIhU2jmj7Kc4LxL3sf us
  • 在 Ruby 中动态创建类

    我有一个类应该看起来像这样 class Family Type1 people Array new 3 people 0 Policeman new Peter 0 people 1 Accountant new Paul 0 people
  • Android 意图过滤器不起作用

    我的应用程序可以打开以下文件格式 kml 应用程序 vnd google earth kml xml kmz 应用程序 vnd google earth kmz gpx 应用程序 gpx xml 我正在尝试正确设置我的意图过滤器 以便在尝试
  • Path.Combine() 行为与驱动器号

    根据官方文档有关Path Combine方法 https msdn microsoft com en us library fyy7a5kt v vs 110 aspx Remarks 如果 path1 不是驱动器引用 即 C 或 D 并且
  • 如何从 numpy 多维数组中获取 k 个最大值的索引

    我问了几个问题StackOverflow但找不到相关答案 我想从 a 中获取 k 个最大值的索引numpy ndarray 这个链接讨论相同但针对一维数组 np argsort对于二维数组导致元素按行排序 IE Note array ele
  • MongoDB 中的文档大小

    考虑将来切换到 DynamoDB 但希望确保我的文档在 1KB 以下 因为它们按 KB 收费 有没有一种快速方法可以知道集合中文档的大小 作为一般指南 您可以检查集合中文档的平均大小collname使用avgObjSize收藏报告的价值st
  • 如何对使用其自身输出的滞后值的函数进行矢量化?

    我很抱歉问题的措辞不好 但这是我能做的最好的事情 我确切地知道自己想要什么 但不知道如何要求它 下面是一个例子演示的逻辑 取值 1 或 0 的两个条件会触发一个也取值 1 或 0 的信号 无论如何 条件 A 都会触发信号 如果 A 1 则信
  • Microsoft Visual Studio 2012 已停止工作

    我一直在 Windows Server 2008 R2 sp1 上使用 Visual Studio 2012 尽管除了性能有点慢之外 它似乎工作得很好 但每当我关闭应用程序时 我都会收到以下错误 Microsoft Visual Studi
  • 使用 jQuery 将密码字段更改为带有复选框的文本

    如何通过复选框选中取消选中将密码字段切换为文本和密码 这是你要找的吗
  • SQL Server 2005 生成的创建表脚本不起作用

    我正在为现有数据库创建数据库脚本 我尝试使用 SQL Server 为我生成脚本 但生成的脚本失败 我正在使用 脚本表为 gt 创建到 gt 新查询编辑器窗口 选项 然后 我更改表和约束名称并执行脚本 我很困惑 有人能看到这里的问题吗 我收
  • 使用 next_permutation 排列类向量

    是否可以使用 std next permutation 来排列我创建的类的向量的元素 next permutation 中的比较参数如何工作 是否可以使用 std next permutation 来排列我创建的类的向量的元素 Yes Tr
  • 跨浏览器 CSS3 关键帧动画 Firefox

    我使用 CSS3 和关键帧在播放按钮 这是一个锚标记 上实现了一个简单的 脉动 效果 虽然它在 Chrome 和 Safari 中完美运行 但在 Firefox 中似乎不起作用 有人知道为什么吗 li gt a webkit animati
  • Flex:如何为 TabNavigator 组件添加选项卡关闭按钮

    我想要一个TabNavigator具有某些选项卡的关闭按钮的组件 我怎么做 看来TabNavigator组件不允许 或者我找不到 这种形式的可扩展性 帮助 谢谢 您应该从以下位置查看 SuperTabNavigator 组件 FlexLib
  • Convert.ToString() 转换为二进制格式无法按预期工作

    int i 20 string output Convert ToString i 2 Base2 formatting i 20 output Convert ToString i 2 Value Expected Actual 20 0
  • MS Access 中的透视查询

    我在 Access 表中有以下数据 ID Name CAT 1 Bill Red 1 Bill Yellow 1 Bill Green 1 Bill Orange 2 Ted Purple 2 Ted White 3 Alice Indig
  • 最大数组长度配额

    我正在编写一个小型 WCF WPF 应用程序来调整图像大小 但当我尝试从客户端向我的服务发送大小为 28K 的图像时 WCF 给我带来了痛苦 当我发送较小的图像时 该服务工作正常 我立即认为这是一个配置问题 并且我在网上搜索了有关我的绑定配
  • 替换为 Spring 注解

    有没有办法用注释替换构造函数参数 我有这个构造函数 public GenericDAOImpl Class
  • C 中的 switch 语句:变量的情况?

    include
  • 如何在 GitHub Actions 表达式语法中引用上下文值?

    我想在其中设置一个环境变量env GitHub Action 的部分并利用GitHub Actions 的上下文和表达式语法 我试过这个 jobs build runs on ubuntu latest env MYVAR format 0