Как называется этот формат конфигурации GitHub Actions? - PullRequest
3 голосов
/ 14 марта 2020

В описании GitHub Action для Ху go я вижу следующий фрагмент кода:

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: Согласно этому языковому идентификатору, это может быть Nginx язык конфигурации.

Обновление 2: В этой статье от Джейсон Эткович Я нашел части кода, очень похожие на те, что есть в действии GitHub.

Обновление 3: Кажется, что это HCL, или Язык конфигурации Hashicorp .

1 Ответ

1 голос
/ 15 марта 2020

Вы уже обнаружили, что это подмножество HCL ( Язык конфигурации Hashicop ). Это был язык, который использовался для создания действий во время бета-тестирования до августа 2019 года.

На машине обратного хода формат действий был таким же до августа 2019 года:

enter image description here

В августе 2019 года был выпущен новый формат YAML:

enter image description here

enter image description here

В октябре 2019 года рабочие процессы HCL больше не работали

С этой старой статьи презентация языка конфигурации рабочих процессов HCL

Язык рабочего процесса Actions

Все файлы main.workflow записаны на языке рабочего процесса Actions, который является подмножеством HCL Hashicorp. Фактически, наш анализатор построен на основе синтаксического анализатора hashicorp / hcl с открытым исходным кодом.

Все файлы рабочих процессов действий являются действительными HCL, но не все файлы HCL являются действительными рабочими процессами. Синтаксический анализатор рабочего процесса Actions является более строгим, он допускает только определенный набор ключевых слов c и запрещает вложенные объекты среди других ограничений. Причиной этого является давняя цель действий: сделать редактор действий и текстовое представление рабочих процессов эквивалентными и взаимозаменяемыми. Любой файл, который вы пишете в графическом редакторе, может быть, конечно, выражен в файле main.workflow, но также: любой main.workflow может быть полностью отображен и отредактирован в графическом редакторе. Есть одно исключение: графический редактор не отображает комментарии. Но это сохраняет их: изменения, которые вы делаете в графическом редакторе, не мешают комментариям, которые вы добавили в свой файл main.workflow.

Кажется, что руководство по переходу с HCL на YAML больше не доступно в справке .github.com но старый сайт доступен на машине обратного хода здесь . Плохая новость заключается в том, что официальное миграционное репо было удалено, а репозиторий-анализатор рабочего процесса и hcl fork также были полностью удалены

Вы можете проверить this , чтобы создать рабочий процесс Github Action для Hu go

...