首页 > 解决方案 > 在 GitHub 操作中使用日期作为 ENV 变量

问题描述

这是一个非常有趣但非常令人沮丧的问题。我正在使用一个 ENV 变量,它指定日期。我提供了一个符合 ISO 8601 的版本,并在应用程序中检索并解析它。当我在 GH 操作工作流中指定它时,它会被解析为日期(而不是字符串)并格式化。因此,我的应用程序解析失败。

示例:.github/workflows/rust.yaml

env:
        MY_DATE: '2020-10-07T12:00:00+01:00'
run: echo $MY_DATE

结果(GH 操作 UI):

env:
    TMOU_GAME_END: 10/07/2020 11:00:00

10/07/2020 11:00:00

它特定于 GitHub 操作及其 yaml 解析,它在 Heroku、各种本地设置等上运行良好。

我尝试过但没有用的东西:

有什么帮助吗?我可以打开任何秘密参数吗?任何转义序列?我只想 GH Actions yaml 解析器将值视为字符串。

标签: yamlgithub-actions

解决方案


令人惊讶的是,GitHub Actions 工作流程 YAML 解析器似乎没有完全实现标准,并且使用显式类型(如!!str)不起作用。但是,您可以通过在 YAML 文件本身中而不是在工作流执行期间使用专用工作流命令将环境变量设置为所需值来解决它:

steps:
  - name: Dynamically set MY_DATE environment variable
    run: echo "MY_DATE=2020-10-07T12:00:00+01:00" >> $GITHUB_ENV
  - name: Test MY_DATE variable
    run: echo ${{ env.MY_DATE }}

这应该可以解决问题。


推荐阅读