Настройте глобальную конвейерную библиотеку Jenkins через Groovy
2 ответа
Полученный из замечательного ответа от StephenKing, вот новый способ использования ModernSCM с использованием GitSCMSource
:
import org.jenkinsci.plugins.workflow.libs.SCMSourceRetriever;
import org.jenkinsci.plugins.workflow.libs.LibraryConfiguration;
import jenkins.plugins.git.GitSCMSource;
def globalLibsDesc = Jenkins.getInstance()
.getDescriptor("org.jenkinsci.plugins.workflow.libs.GlobalLibraries")
SCMSourceRetriever retriever = new SCMSourceRetriever(new GitSCMSource(
"someId",
"mygitrepo",
"credentialId",
"*",
"",
false))
LibraryConfiguration pipeline = new LibraryConfiguration("pipeline", retriever)
.setDefaultVersion(env.BRANCH_NAME)
.setImplicit(true)
globalLibsDesc.get().setLibraries([pipeline])
Конфигурация может быть доступна через org.jenkinsci.plugins.workflow.libs.GlobalLibraries
:
import org.jenkinsci.plugins.workflow.libs.*
import hudson.scm.SCM;
import hudson.plugins.git.*;
def inst = Jenkins.getInstance()
def desc = inst.getDescriptor("org.jenkinsci.plugins.workflow.libs.GlobalLibraries")
Предполагая Git-репо, мы можем определить SCM следующим образом:
SCM scm = new GitSCM("https://git.example.com/foo.git")
SCMRetriever retriever = new SCMRetriever(scm)
Каждая библиотека является экземпляром LibaryConfiguration
, который, наконец, добавляется с помощью setLibraries()
:
def name = "pipeline"
LibraryConfiguration libconfig = new LibraryConfiguration(name, retriever)
desc.get().setLibraries([libconfig])