Project

General

Profile

1 27229 sandro.lab
def myFile= new File("/tmp/DSL40/configuration.xml")
2 21753 sandro.lab
def parser=new XmlSlurper().parseText(myFile.text);
3
def allModule=parser.module.each {
4 21970 sandro.lab
        def projectName= it.name as String
5
        def sourceCodeType=it.source.@type
6 26630 sandro.lab
        def versionCode = it.source.@version
7 21970 sandro.lab
        def URLSource=it.source as String
8
        def mvnGoal= it.goal as String
9
        def hasSonar= it.sonar as String
10 26630 sandro.lab
        def mail = it.mail as String
11
        def repositoryId = it.deploy.RepositoryId as String
12
        def repositoryURL = it.deploy.RepositoryURL as String
13 31464 sandro.lab
        def nightly = it.nightly as String
14 26942 sandro.lab
        def cron_node = it.cron as String
15 37752 sandro.lab
	println "executing "+projectName
16 21970 sandro.lab
        job(type: Maven) {
17 26630 sandro.lab
            if (versionCode == '4')
18 31473 sandro.lab
                {
19 31461 sandro.lab
                    if (nightly =='true'){
20
                    	name 'DSL4_nightly_'+projectName
21
                    	using ("dnet-nightly-template")
22
                    }
23
                    else{
24
                    	name 'DSL4_'+projectName
25
                    	using ("dnet4-svn-template")
26
                    }
27 26630 sandro.lab
                }
28 26631 sandro.lab
                else{
29 26630 sandro.lab
                    name 'DSL_'+projectName
30 26631 sandro.lab
                    using ("dnet-svn-template")
31
                }
32
33 21970 sandro.lab
                triggers
34
                {
35 31461 sandro.lab
                	if (nightly !='true'){
36
                    	scm('H/10 * * * *')
37
                    }
38 26942 sandro.lab
                    if (cron_node)
39
                    {
40
                        cron(cron_node)
41
                    }
42 22003 sandro.lab
                }
43 21970 sandro.lab
            configure {
44
                        project ->
45
                        def goalModule=project / goals
46
                        goalModule.value=mvnGoal
47 31471 sandro.lab
                        def scm= project / scm
48
                        def remoteNode= scm.locations.'hudson.scm.SubversionSCM_-ModuleLocation'[0].remote[0]
49
                        remoteNode.value=URLSource
50
51 22003 sandro.lab
                        if (mail){
52
                            def publishersNode = project /publishers
53 30964 sandro.lab
                            if (repositoryId) {
54
                                    def repo_publisher_node= publishersNode.appendNode('hudson.maven.RedeployPublisher')
55
                                    def repoid_node =repo_publisher_node.appendNode('id')
56
                                    repoid_node.value = repositoryId
57
                                    def repourl_node =repo_publisher_node.appendNode('url')
58
                                    repourl_node.value = repositoryURL
59
                                    repo_publisher_node.appendNode('uniqueVersion').value='true'
60
                                    repo_publisher_node.appendNode('evenIfUnstable').value='true'
61
                                }
62 22003 sandro.lab
                            def m1 = publishersNode.appendNode('hudson.plugins.emailext.ExtendedEmailPublisher')
63
                            m1.@plugin= "email-ext@2.36"
64
                            def rec1 = m1.appendNode('recipientList')
65
                            rec1.value= mail
66
                            def ct= m1.appendNode('configuredTriggers')
67
                            def TriggerNode = ct.appendNode('hudson.plugins.emailext.plugins.trigger.FailureTrigger')
68
                            def emailNode = TriggerNode.appendNode('email')
69
                            emailNode  << {
70
                                recipientList ()
71 22008 sandro.lab
                                subject ('Jenkins Job Problem on $PROJECT_NAME - Build # $BUILD_NUMBER')
72
                                body ('$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS: Check console output at $BUILD_URL to view the results.')
73 22003 sandro.lab
                                sendToDevelopers ('true')
74
                                sendToRequester ('true')
75
                                includeCulprits('true')
76
                                sendToRecipientList('true')
77
                                attachmentsPattern('')
78 22004 sandro.lab
                                attachBuildLog('true')
79 22003 sandro.lab
                                compressBuildLog('false')
80 22004 sandro.lab
                                replyTo (mail)
81 22006 sandro.lab
                                contentType('text/html')
82 22003 sandro.lab
                            }
83 22005 sandro.lab
                            TriggerNode.appendNode('attachBuildLog').value='true'
84 22007 sandro.lab
                            TriggerNode.appendNode('defaultSubject').value='Jenkins Job Problem on $PROJECT_NAME - Build # $BUILD_NUMBER'
85
                            TriggerNode.appendNode('defaultContent').value='$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS: Check console output at $BUILD_URL to view the results.'
86 22010 sandro.lab
                            TriggerNode.appendNode('contentType').value='text/html'
87 22003 sandro.lab
88 22005 sandro.lab
89 22003 sandro.lab
                        }
90 21970 sandro.lab
                        if (hasSonar.equals("YES")) {
91
                            def pubblish=(project /publishers)
92
                            ppNode=pubblish.appendNode('hudson.plugins.sonar.SonarPublisher')
93
                            ppNode.@plugin="sonar@2.1"
94 21972 sandro.lab
                            ppNode.appendNode('jdk').value= '(Inherit From Job)'
95 21970 sandro.lab
                            }
96
                    }
97
        }
98
}