Как мне создать работу, которая запускает Groovy код с работой DSL? - PullRequest
0 голосов
/ 25 октября 2018

Я могу запустить это внутри проекта задания 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"
}

Но я хочу, чтобы сценарий задания dsl создал задание, которое запускает этот отличный код (по расписанию).Похоже, systemGroovyCommand - это то, что я хотел бы использовать, если я не понимаю - похоже, вы должны использовать .groovy file для systemGroovyCommand, которого я хотел бы избежать.

1 Ответ

0 голосов
/ 25 октября 2018

Да, это 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)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...