Реализован тип ресурса: как Concourse использует выходные данные сценариев check, in и out? - PullRequest
0 голосов
/ 17 июня 2019

Чтение документации Concourse о Реализация типа ресурса , относительно того, что должны выдавать сценарии check, in и out, неясно , почему этот вывод необходим или как Конкорс использует его. Мои вопросы:

1) Как Concourse использует выходные данные сценария проверки, сценария in и сценария out?
2) И почему требуется, чтобы входной и выходной сценарии выдавали версию? Что произойдет, если вы этого не сделаете?

Для контекста, здесь приведены соответствующие части документации:

1) Для сценария check :

... [it] должен распечатать массив новых версий в хронологическом порядке, в стандартный вывод, включая запрошенную версию, если она все еще действительна.

Например:

[
  { "ref": "61cbef" },
  { "ref": "d74e01" },
  { "ref": "7154fe" }
]

2) Для сценария in :

Сценарий должен выдавать извлеченную версию и может выдавать метаданные в виде списка пар ключ-значение. Эти данные предназначены для общего пользования и будут направлены вверх и предназначены для показа на странице сборки.

Например:

{
  "version": { "ref": "61cebf" },
  "metadata": [
    { "name": "commit", "value": "61cebf" },
    { "name": "author", "value": "Hulk Hogan" }
  ]
}

3) Аналогично сценарию in , сценарий out :

Скрипт должен выдавать результирующую версию ресурса. За Например, ресурс Git испускает ша коммит, что он просто толкнул.

Например:

{
  "version": { "ref": "61cebf" },
  "metadata": [
    { "name": "commit", "value": "61cebf" },
    { "name": "author", "value": "Mick Foley" }
  ]
}

1 Ответ

1 голос
/ 28 июня 2019

Concourse использует результат check для проверки наличия новых ресурсов.В соответствии с определением вашего конвейера, наличие нового ресурса будет запускать задание.Поэтому in используется для чтения конкретного ресурса с использованием параметров, предоставляемых конвейером, тогда как out позаботится о их записи.

Поскольку ваш in будет использовать информацию, предоставленнуюcheck вы можете использовать аналогичную структуру, но вы не обязаны.Полезно отображать ту же информацию о версии в вашей проверке / входе / выходе, чтобы иметь возможность регистрировать ее и понимать, какой ресурс в вашем конвейере принадлежит к какой версии.

...