在Concourse中触发事件

时间:2017-08-25 13:00:37

标签: concourse

我正在尝试在执行任务/资源时触发事件。目前的想法是在任务的脚本中触发事件。

由于我需要将元数据变量(BUILD_ID,BUILD_NAME)作为要在事件中发送的信息的一部分,因此我创建了一个资源(访问元数据的唯一方法)并将其传递给任务。 问题是我无法访问任务中的这些变量。

有什么想法来解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

如果要访问资源中的数据,则需要将资源传递给正在执行的任务。

查看此示例https://gist.github.com/gdenn/91e9d5369f7e0e289960e56cd69e942f

我们的作业demo_job包含资源some_git_resource和任务use_demo_resource_and_do_something

为了让任务访问some_resource内的数据,您需要将资源声明为任务的输入。

您可以通过在第15行和第15行中指定变量名称和路径来实现此目的。 16。 使用name属性引用资源名称,使用path变量指定docker容器中资源文件夹的路径。

上传管道并触发作业。运行后,使用fly hijack命令登录任务use_demo_resource_and_do_something的docker容器。您会注意到您的容器在根目录中有一个名为some_git_resource的文件夹。

如果您的任务只有一个输入,您也可以将路径设置为.但请记住,这仅适用于单个输入。如果要在任务中使用多个输入,则必须使用正确的path

如果您在任务中遇到脚本问题,请尝试劫持容器。通常,您可以更深入地了解为什么您的任务不能以这种方式工作。 要在demo_job中劫持demo_task,请使用此命令fly -t <your_target> hijack -j demo_job/demo_task

有关更多信息,请查看大厅任务文档。