任务扩展
概述
GoCD支持在配置UI中直接配置几种任务(Nant、Ant和Rake),而无需将它们指定为自定义命令。例如,如果你进入作业的配置UI,你会看到类似这样的内容:
一个任务插件允许你进行扩展,以便在这里可以使用其他任务。该插件还允许你控制UI以及为此任务存储的数据。
例如,你可以找到一个示例Curl插件的源代码,在这个位置。假设你已安装该插件,你会发现作业配置UI中的下拉菜单已更改为如下所示:
当选择时,允许你配置任务详细信息的对话框看起来像这样:
在配置XML中,为此任务输入的信息看起来像这样:
<task>
<pluginConfiguration id="curl.task.plugin" version="1" />
<configuration>
<property>
<key>Url</key>
<value>http://www.google.com</value>
</property>
<property>
<key>SecureConnection</key>
<value>no</value>
</property>
<property>
<key>RequestType</key>
<value>-G</value>
</property>
<property>
<key>AdditionalOptions</key>
<value />
</property>
</configuration>
<runif status="passed" />
</task>
当使用插件的构建运行时,构建的输出看起来像这样:
[go] Start to execute task: Plugin with ID: curl.task.plugin.
Launching command: [curl, -G, --insecure, -o, pipelines/up42/index.txt, http://www.google.com]
Environment variables:
Name= MAVEN_OPTS Value= -Xms256m -Xmx512m
Name= GO_STAGE_COUNTER Value= 1
Name= GO_REVISION_BLAH Value= cde1e03a05170b991a92a136278c3464e4f35fe7
Name= GO_JOB_NAME Value= up42_job
Name= EDITOR Value= vim
Name= SECURITYSESSIONID Value= 186a4
... lots more environment variables ...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:02 --:--:-- 0
100 259 100 259 0 0 122 0 0:00:02 0:00:02 --:--:-- 122
你可以使用以下方式在GoCD中编写任务插件:JSON API - 基于消息的方式