harika komut (http://scriptlerweb.appspot.com/catalog/list) yeni iş yaratma hayır hayır örneğinin bir çok örnek vardır.Groovy'yi kullanarak yeni bir Jenkins Job nasıl oluşturulur ve yapılandırılır?
cevap
Jenkins eklenti Job DSL Plugin/oluşturmak için, mevcut işlerini değiştirmek için işlerin içine adımları ekleyebilir. , Yeni bir iş için config.xml içeren bir XML dizesi var olduğu göz önüne alındığında
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}")
}
}
}
:
Burada git deposunda her şube için iş oluşturduğunda eklentinin web sitesinden gelen örnektir Aşağıdaki groovy script istediğinizi yapacağız. Daha fazla ayrıntı için
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)
XML kullanmak kaçınmaya çalıştığım şeydir. Sadece groovy kodunu okumayı ve sürdürmeyi zorlaştırır. –
SCM gelen işi Boru Hattı komut dosyası oluşturun bkz:
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()
Başka bir örnek: 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. Jenkins Job DSL, git eklentisi
- 2. jenkins job sıkışmış Düğüm ortam değişkenleri yükleniyor
- 3. gpg imzasıyla Jenkins (Hudson) nasıl yapılandırılır
- 4. Jenkins eşzamanlı çok bölmeli boru hattı nasıl yapılandırılır?
- 5. Jenkins TextParameter bir metin dosyası nasıl oluşturulur
- 6. Yeni Jenkins kölesi nasıl kurulur
- 7. IDEA kullanarak yeni bir yöntem için test çubuğu nasıl oluşturulur?
- 8. Yeni klasör nasıl oluşturulur?
- 9. bahar mvc ve jsp kullanarak bir posta sunucusu nasıl yapılandırılır?
- 10. SQLAlchemy kullanarak yeni bir veritabanı nasıl oluşturulur? Sqlalchemy ile
- 11. MATLAB'da yeni bir şekil nasıl oluşturulur?
- 12. JsonNode'da yeni düğümler nasıl oluşturulur?
- 13. Belirli bir saat ve tarihte cron job
- 14. Sürekli entegrasyonda javascript nasıl oluşturulur ve küçültülür (jenkins)
- 15. Gerrit'te yeni bir Yama kümesi nasıl oluşturulur?
- 16. Maven bağımlılığı kullanarak bir Jenkins işini tetikleyebilir miyim?
- 17. VB.NET'te yeni bir dizi nasıl oluşturulur?
- 18. Meteor'da yeni bir veritabanı nasıl oluşturulur?
- 19. Anahtar alındığında yeni bir SharedPreferences nasıl oluşturulur?
- 20. Yeni bir dosya için yama nasıl oluşturulur?
- 21. İş zaman aşımını Jenkins DSL kullanarak nasıl ayarlayabilirim
- 22. Saklı yordamda yeni bir kılavuz nasıl oluşturulur?
- 23. Java kullanarak Kettle Job/Transformation'ı çalıştırmayı durdurun
- 24. Depolama Erişimi Çerçevesi'ni kullanarak sd kartında yeni klasör nasıl oluşturulur?
- 25. Değişkende saklanan sınıf adını ve yeni bir değişkeni bu sınıfın yapıcısına nasıl geçirileceğini kullanarak yeni nesne nasıl oluşturulur?
- 26. ORMLite - Bir nesne nasıl oluşturulur ve yabancı koleksiyon nasıl doldurulur?
- 27. Apache flume nasıl kurulur ve yapılandırılır?
- 28. Prestashop yönetici panelinde yeni sayfa nasıl oluşturulur?
- 29. Bir Slave çevrimdışı duruma geçtiğinde Jenkins bir bildirim e-postası göndermek için nasıl yapılandırılır?
- 30. Nginx'de ETag nasıl yapılandırılır
[bu] (http bakın: //stackoverflow.com/a/8803743/2051952) ve [this] (htt Bazı içgörüler için p: //stackoverflow.com/questions/10413936/creating-a-jenkins-environment-variable-using-groovy). – dmahapatro
[Configure or Create hudson job automatically] 'ın olası kopyası (http://stackoverflow.com/questions/3886892/configure-or-create-hudson-job-automatically) –