我可以在job dsl项目中运行它:
def pluginsListFile = new File("${plugins}/plugins.txt")
def pluginsList = jenkins.model.Jenkins.instance.getPluginManager().getPlugins()
pluginsList.each {
pluginsListFile.append "${it.getShortName()}: ${it.getVersion()}\n"
}
但是我希望job dsl脚本创建一个运行该常规代码(按计划)的作业。好像systemGroovyCommand是我要使用的,因为我不明白-看来您必须为systemGroovyCommand使用.groovy 文件,这是我想避免的。
答案 0 :(得分:1)
是的,它是systemGroovyCommand。您不必将此脚本存储在单独的文件中,但这是最佳实践。
systemGroovyCommand
接受字符串作为参数,因此您可以通过这种方式传递代码,但请记住转义特殊字符。
用法示例:
def script = '''
def pluginsListFile = new File("${plugins}/plugins.txt")
def pluginsList = jenkins.model.Jenkins.instance.getPluginManager().getPlugins()
pluginsList.each {
pluginsListFile.append "${it.getShortName()}: ${it.getVersion()}\\n"
}
'''
job('TEST_JOB_SCRIPT') {
steps {
systemGroovyCommand(script)
}
}