实现了资源类型:Concourse如何使用check,in和out脚本的输出?

时间:2019-06-16 22:39:39

标签: concourse

在阅读关于Implementing a Resource Type的Concourse文档时,关于检入和检出脚本必须发出的内容,尚不清楚为什么需要此输出或如何大厅使用它。我的问题是:

1)Concourse如何使用检查脚本,输入脚本和输出脚本的输出?
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 个答案:

答案 0 :(得分:1)

Concourse使用check结果来验证是否有任何新资源可用。根据您的管道定义,新资源的存在将触发作业。因此,in用于使用管道提供的参数读取特定资源,而out将负责编写它们。

由于您的in将使用check提供的信息,因此您可能想使用类似的结构,但是您不必这样做。可以在签入/签入/签出中回显相同的版本信息,以便能够对其进行记录并了解管道中的每个资源属于哪个版本。