我想知道是否可以在管道groovy脚本中创建新的Jenkins构建作业。我知道可以启动现有作业,但我还想在脚本中创建新作业然后启动它们。
这将允许我在我的脚本中创建“作业图”。对于作业图,我的意思是可以依赖于彼此结果的构建作业集合,图表确定哪些作业可以并行运行。像
这样的东西 /- WindowsBuild---------- WindowsRunTests -------------\
/ \
JobRoot --- LinuxBuild------------ LinuxRunTests ----------------/-- AllDone
\ \ /
\ \- LinuxRunDynamicAnalysis ----/
\- StaticCodeAnalysis -------------------------------/
在切换到Pipeline作业之前,我通过手动创建作业并设置其依赖项来完成此操作。现在我想在脚本中创建必要的工作。
在jenkins管道中使用当前的parallalism模型我有一个构建阶段,一个测试阶段等,但这些阶段会降低整体执行速度,因为例如WindowsRunTests步骤将不会在所有构建步骤之前启动在所有平台上都已完成,尽管它只需要WindowsBuild步骤的结果。
它还可以改善管道的可视化,并将使用parallel()
命令混合在一起的控制台输出分开。
答案 0 :(得分:1)
我不确定它是否可以帮助您,但是您可以通过解决方法来解决。您可以运行python脚本,并可以在该脚本中通过复制现有作业模板来创建新作业:
jen_conn = connect_to_jenkins(jenkins_url, jenkins_user, jenkins_password)
jen_conn.copy_job('copy-job-dev', jenkins_job_name)
具有以下功能:
def connect_to_jenkins(jenkins_url, jenkins_user, jenkins_password):
server = jenkins.Jenkins(jenkins_url, username=jenkins_user, password=jenkins_password)
try:
user = server.get_whoami()
except BaseException as error:
print error
print "Could not connect to Jenkins."
exit()
return server
您必须将jenkins插件用于python。