Istnieje wiele przykładów groovy skryptów (http://scriptlerweb.appspot.com/catalog/list) nie ma żadnego przykładu tworzenia nowych miejsc pracy.Jak utworzyć i skonfigurować nową pracę Jenkins przy użyciu groovy?
Odpowiedz
Wtyczka Jenkins Job DSL Plugin może dodawać kroki do zadań w celu utworzenia/modyfikacji istniejących zadań.
Oto przykład ze strony internetowej pluginu, który tworzy zadanie dla każdego oddziału w repozytorium git:
def project = 'quidryan/aws-sdk-test'
def branchApi = new URL("https://api.github.com/repos/${project}/branches")
def branches = new groovy.json.JsonSlurper().parse(branchApi.newReader())
branches.each {
def branchName = it.name
def jobName = "${project}-${branchName}".replaceAll('/','-')
job(jobName) {
scm {
git("git://github.com/${project}.git", branchName)
}
steps {
maven("test -Dproject.name=${project}/${branchName}")
}
}
}
zważywszy, że masz ciąg XML zawierający config.xml do nowej pracy, poniższy groovy skrypt zrobi to, co chcesz.
import jenkins.model.*
def jobName = "my-new-job"
def configXml = "" // your xml goes here
def xmlStream = new ByteArrayInputStream(configXml.getBytes())
Jenkins.instance.createProjectFromXML(jobName, xmlStream)
Aby uzyskać więcej informacji zobacz API Docs
Używanie XML jest tym, czego staram się uniknąć. Po prostu sprawia, że kod groovy jest trudniejszy do odczytania i utrzymania. –
Tworzenie Pipeline skrypt z SCM pracy:
import hudson.plugins.git.*;
def scm = new GitSCM("[email protected]:dermeister0/Tests.git")
scm.branches = [new BranchSpec("*/develop")];
def flowDefinition = new org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition(scm, "Jenkinsfile")
def parent = Jenkins.instance
def job = new org.jenkinsci.plugins.workflow.job.WorkflowJob(parent, "New Job")
job.definition = flowDefinition
parent.reload()
Inny przykład: https://github.com/linagora/james-jenkins/blob/master/create-dsl-job.groovy
def jobDSL="""
node {
stage("test"){
echo 'Hello World'
}
}
""";
//http://javadoc.jenkins.io/plugin/workflow-cps/index.html?org/jenkinsci/plugins/workflow/cps/CpsFlowDefinition.html
def flowDefinition = new org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition(jobDSL, true);
//http://javadoc.jenkins.io/jenkins/model/Jenkins.html
def parent = Jenkins.instance;
//parent=Jenkins.instance.getItemByFullName("parentFolder/subFolder")
//http://javadoc.jenkins.io/plugin/workflow-job/org/jenkinsci/plugins/workflow/job/WorkflowJob.html
def job = new org.jenkinsci.plugins.workflow.job.WorkflowJob(parent, "testJob")
job.definition = flowDefinition
job.setConcurrentBuild(false);
//http://javadoc.jenkins.io/plugin/branch-api/jenkins/branch/RateLimitBranchProperty.html
job.addProperty(new jenkins.branch.RateLimitBranchProperty.JobPropertyImpl
(new jenkins.branch.RateLimitBranchProperty.Throttle (60,"hours")));
def spec = "H 0 1 * *";
hudson.triggers.TimerTrigger newCron = new hudson.triggers.TimerTrigger(spec);
newCron.start(job, true);
job.addTrigger(newCron);
job.save();
Jenkins.instance.reload()
- 1. Jak zaimplementować nową datę() przy użyciu sinon?
- 2. Jak utworzyć nową bazę danych dla istniejącej aplikacji przy użyciu Django South i ustawić wartości domyślne?
- 3. Tworzenie zadań i wykonywanie ich w jenkins przy użyciu REST
- 4. Jak używać zmiennych środowiskowych w funkcji groovy przy użyciu Jenkinsfile
- 5. Jak utworzyć nową (i pustą!) Gałąź "root"?
- 6. Hudson * .groovy nie znaleziono w Jenkins
- 7. Jak skonfigurować aplikację AngularJS przy użyciu AWS?
- 8. Rozszerzony parametr jenkins plugin groovy skrypt
- 9. Jak dynamicznie utworzyć nową właściwość?
- 10. Jenkins, jak utworzyć instrukcję obsługi rurociągu Krok
- 11. Jak mogę utworzyć nową adnotację?
- 12. Wdrażanie logiki internetowej przy użyciu maven and jenkins
- 13. Program java kwarcowy terminarz natychmiast uruchamia nową pracę
- 14. Jak utworzyć metodę zastępowania przy użyciu Mono.Cecil?
- 15. Jak utworzyć modalne podręczne przy użyciu JavaScript i CSS
- 16. Jak utworzyć histogram przy użyciu danych d3.js i crossfiltra?
- 17. Jak utworzyć hasło i potwierdzenie przy użyciu form_for?
- 18. Jak zamienić tekst w plikach przy użyciu funkcji Gradle/Groovy
- 19. Jak utworzyć żądanie $ .get przy użyciu coffeescript?
- 20. POMYSŁ: Jak utworzyć toString() przy użyciu nadklasy
- 21. Jak wyśmiać nową datę() w java przy użyciu Mockito
- 22. Jenkins Poświadczenia Store dostęp przez Groovy
- 23. Jak zamontować objętość dokera przy użyciu kontenera dokowanego Jenkins?
- 24. Jak wzywać Anta w pracy z rurociągiem Jenkinsa przy użyciu groovy script?
- 25. Jak skonfigurować pracę Eclipse-ide na ramie Playframework 2.0
- 26. Jak otworzyć nową wiadomość e-mail i przypisać temat przy użyciu .NET Compact Framework
- 27. Jak dogłębnie nauczyć się z rzędu liczb przy użyciu Node.js i convnetjs i przewidzieć nową wartość?
- 28. Jak utworzyć i uzyskać dostęp do zmiennych globalnych w Groovy?
- 29. Jak mogę utworzyć nową aktywność z IntelliJ?
- 30. Jak utworzyć nową instancję klonu obiektu PSObject
Patrz [to] (http: //stackoverflow.com/a/8803743/2051952) i [to] (htt p: //stackoverflow.com/questions/10413936/creating-a-jenkins-environment-variable-using-groovy) dla pewnego wglądu. – dmahapatro
możliwy duplikat [Konfiguruj lub Utwórz automatycznie zadanie Hudson] (http://stackoverflow.com/questions/3886892/configure-or-create-hudson-job-automatically) –