2017-08-25 50 views
0

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

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

任何想法o解决这个问题的策略?

回答

0

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

看看这个例子https://gist.github.com/gdenn/91e9d5369f7e0e289960e56cd69e942f

我们持有的资源some_git_resource和任务use_demo_resource_and_do_something工作demo_job

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

您在第15行指定变量名和路径有了你引用的资源名称和路径变量指定为您泊坞窗容器中的资源文件夹的路径名称属性这么做。

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

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

如果您在任务中遇到脚本问题,请尝试劫持容器。通常你会更清楚地知道你的任务不是以这种方式工作的。 要在demo_job中劫持demo_task,请使用此命令fly -t <your_target> hijack -j demo_job/demo_task

有关更多信息,请查看汇总任务文档。

+0

谢谢Rapdrei。有什么方法可以自动执行劫持命令吗?理想情况下,我希望将事件作为管道的一部分,现在我使用资源将其放入脚本中,在该资源中收集元数据并将其传递给任务。 – jflroes

+0

我们有一个误解。劫持命令在那里调试你的管道。你不应该在你的管道中使用它。 有时候,看看执行任务的码头容器上发生了什么非常有用。 – gdenn