如何使用 jenkins 管道 groovy 脚本中的 RTC 插件?
How to use RTC plugin from jenkins pipeline groovy script?
我知道我可以通过 Jenkins RTC 插件使用 scm 轮询,我只是想知道是否有关于如何通过管道插件的 groovy 脚本执行此操作的示例?
例如:
node{
stage 'Checkout'
git url: 'https://github.com/whatever/myrepo.git'
...
}
类似于上面的内容,但不是 git,而是将 rtc 工具包与 prod url 一起使用并指定流或工作区...无法在任何地方找到示例并且不确定如何进行通过 api 实现它(或者如果可能的话?)
管道插件中有一个代码片段生成器,我花了一段时间才找到它,但它会为任何 Jenkins 任务生成 groovy 代码...Rtc 列在 teamconcert 下: Team Concert,只需向下滚动到底部并勾选“片段生成器”复选框!
事实上,片段生成器有点误导,因为它不会生成您需要的所有内容。例如,根据生成的内容,我在管道中使用了这个:
node {
teamconcert([buildDefinition: 'TestStream', value: 'buildDefinition'])
}
如果你按原样使用它,你会得到这个异常:
RTC : checkout...
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
java.lang.NullPointerException
at com.ibm.team.build.internal.hjplugin.RTCScm.checkout(RTCScm.java:1948)
atorg.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:109)
at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:83)
at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:73)
at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution.call(AbstractSynchronousNonBlockingStepExecution.java:52)
at hudson.security.ACL.impersonate(ACL.java:221)
at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution.run(AbstractSynchronousNonBlockingStepExecution.java:49)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
您需要的语法是这样的:
node {
teamconcert([
buildType: [
buildDefinition: 'TestStream',
value: 'buildDefinition'
]
])
}
Team concert 希望将内容包装在 'buildType' 中。我在 jazz.net 上的一个论坛答案中找到了这个,但没有在其他任何地方看到它的记录。
我知道我可以通过 Jenkins RTC 插件使用 scm 轮询,我只是想知道是否有关于如何通过管道插件的 groovy 脚本执行此操作的示例?
例如:
node{
stage 'Checkout'
git url: 'https://github.com/whatever/myrepo.git'
...
}
类似于上面的内容,但不是 git,而是将 rtc 工具包与 prod url 一起使用并指定流或工作区...无法在任何地方找到示例并且不确定如何进行通过 api 实现它(或者如果可能的话?)
管道插件中有一个代码片段生成器,我花了一段时间才找到它,但它会为任何 Jenkins 任务生成 groovy 代码...Rtc 列在 teamconcert 下: Team Concert,只需向下滚动到底部并勾选“片段生成器”复选框!
事实上,片段生成器有点误导,因为它不会生成您需要的所有内容。例如,根据生成的内容,我在管道中使用了这个:
node {
teamconcert([buildDefinition: 'TestStream', value: 'buildDefinition'])
}
如果你按原样使用它,你会得到这个异常:
RTC : checkout...
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
java.lang.NullPointerException
at com.ibm.team.build.internal.hjplugin.RTCScm.checkout(RTCScm.java:1948)
atorg.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:109)
at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:83)
at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:73)
at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution.call(AbstractSynchronousNonBlockingStepExecution.java:52)
at hudson.security.ACL.impersonate(ACL.java:221)
at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution.run(AbstractSynchronousNonBlockingStepExecution.java:49)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
您需要的语法是这样的:
node {
teamconcert([
buildType: [
buildDefinition: 'TestStream',
value: 'buildDefinition'
]
])
}
Team concert 希望将内容包装在 'buildType' 中。我在 jazz.net 上的一个论坛答案中找到了这个,但没有在其他任何地方看到它的记录。