【问题标题】:What is the name of this GitHub Actions configuration format?这种 GitHub Actions 配置格式的名称是什么?
【发布时间】:2020-06-26 10:22:20
【问题描述】:

GitHub Action for Hugo的描述中看到如下代码sn-p:

workflow "Hugo build" {
  resolves = [
    "Hugo Action",
  ]
  on = "push"
}

action "Hugo Action" {
  uses = "srt32/hugo-action@master"
  needs = "Filters for GitHub Actions"
  args = "--theme=hyde-x"
}

action "Filters for GitHub Actions" {
  uses = "actions/bin/filter@b2bea0749eed6beb495a8fa194c071847af60ea1"
  args = "branch master"
}

在我的项目中,我使用 YAML 进行配置,因此我需要将上述代码翻译成 YAML。为此,我需要知道这种格式/语言是什么。

上面的配置写的格式叫什么名字?

更新1:根据this语言标识符,它可能是Nginx配置语言。

更新 2:Jason Etcovitchthis article 中,我发现代码部分与 GitHub 操作中的代码部分非常相似。

更新3:好像是HCL,或者Hashicorp Configuration Language

【问题讨论】:

    标签: github continuous-integration yaml continuous-deployment github-actions


    【解决方案1】:

    您已经发现它是 HCL (Hashicop Configuration Language) 的子集。它是 2019 年 8 月之前的 beta 期间用于构建操作的语言。

    来自返程机,2019年8月之前的动作格式是这样的:

    2019 年 8 月,新的 YAML 格式发布:

    2019 年 10 月,HCL 工作流didn't work anymore

    来自this old article HCL 工作流配置语言的介绍

    Actions 工作流语言

    所有 main.workflow 文件均以 Actions 工作流语言编写, 这是 Hashicorp 的 HCL 的一个子集。事实上,我们的解析器建立在 开源hashicorp/hcl解析器的顶部。

    所有操作工作流文件都是有效的 HCL,但并非所有 HCL 文件都是有效的 HCL 有效的工作流程。 Actions 工作流解析器更严格,允许 只有一组特定的关键字和禁止嵌套对象,其中 其他限制。原因是长期的目标 Actions:制作Actions编辑器和文本表示 工作流程等效且可互换。您写入的任何文件 图形编辑器可以用 main.workflow 文件来表达,当然, 而且:任何 main.workflow 都可以在 图形编辑器。有一个例外:图形编辑器 不显示 cmets。但它保留了它们:你所做的改变 图形编辑器不会打扰您添加到您的 main.workflow 文件。

    help.github.com 上似乎不再提供从 HCL 到 YAML 的迁移指南,但旧站点可在 wayback machinehere 上找到。坏消息是官方迁移 repo 已被删除,workflow-parser repo 和 hcl fork 也已完全删除

    您可以查看this 为 Hugo 构建 Github Action 工作流

    【讨论】:

      猜你喜欢
      • 2011-02-10
      • 1970-01-01
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 2016-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多