Module: DTK::Client::JenkinsClient::ConfigXML
- Defined in:
- lib/command_helpers/jenkins_client/config_xml.rb
Constant Summary collapse
- ConfigXMLTemplateServiceModule =
Erubis::Eruby.new "<?xml version='1.0' encoding='UTF-8'?>\n<project>\n <actions/>\n <description></description>\n <keepDependencies>false</keepDependencies>\n <properties>\n <com.gmail.ikeike443.PlayAutoTestJobProperty/>\n </properties>\n <scm class=\"hudson.plugins.git.GitSCM\">\n <configVersion>2</configVersion>\n <userRemoteConfigs>\n <hudson.plugins.git.UserRemoteConfig>\n <name></name>\n <refspec></refspec>\n <url><%= repo_url %></url>\n </hudson.plugins.git.UserRemoteConfig>\n </userRemoteConfigs>\n <branches>\n <hudson.plugins.git.BranchSpec>\n <name>**</name>\n </hudson.plugins.git.BranchSpec>\n </branches>\n <disableSubmodules>false</disableSubmodules>\n <recursiveSubmodules>false</recursiveSubmodules>\n <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>\n <authorOrCommitter>false</authorOrCommitter>\n <clean>false</clean>\n <wipeOutWorkspace>false</wipeOutWorkspace>\n <pruneBranches>false</pruneBranches>\n <remotePoll>false</remotePoll>\n <ignoreNotifyCommit>false</ignoreNotifyCommit>\n <buildChooser class=\"hudson.plugins.git.util.DefaultBuildChooser\"/>\n <gitTool>Default</gitTool>\n <submoduleCfg class=\"list\"/>\n <relativeTargetDir></relativeTargetDir>\n <reference></reference>\n <excludedRegions></excludedRegions>\n <excludedUsers></excludedUsers>\n <gitConfigName></gitConfigName>\n <gitConfigEmail></gitConfigEmail>\n <skipTag>false</skipTag>\n <includedRegions></includedRegions>\n <scmName></scmName>\n </scm>\n <canRoam>true</canRoam>\n <disabled>false</disabled>\n <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>\n <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>\n <triggers class=\"vector\"/>\n <concurrentBuild>false</concurrentBuild>\n <builders>\n <hudson.tasks.Shell>\n <command>ruby /var/lib/jenkins/r8_e2e.rb</command>\n </hudson.tasks.Shell>\n </builders>\n <publishers>\n <hudson.plugins.emailext.ExtendedEmailPublisher>\n <recipientList>$DEFAULT_RECIPIENTS</recipientList>\n <configuredTriggers>\n <hudson.plugins.emailext.plugins.trigger.FailureTrigger>\n <email>\n <recipientList></recipientList>\n <subject>$PROJECT_DEFAULT_SUBJECT</subject>\n <body>$PROJECT_DEFAULT_CONTENT</body>\n <sendToDevelopers>true</sendToDevelopers>\n <sendToRequester>false</sendToRequester>\n <includeCulprits>false</includeCulprits>\n <sendToRecipientList>true</sendToRecipientList>\n </email>\n </hudson.plugins.emailext.plugins.trigger.FailureTrigger>\n <hudson.plugins.emailext.plugins.trigger.StillFailingTrigger>\n <email>\n <recipientList></recipientList>\n <subject>$PROJECT_DEFAULT_SUBJECT</subject>\n <body>$PROJECT_DEFAULT_CONTENT</body>\n <sendToDevelopers>true</sendToDevelopers>\n <sendToRequester>false</sendToRequester>\n <includeCulprits>false</includeCulprits>\n <sendToRecipientList>false</sendToRecipientList>\n </email>\n </hudson.plugins.emailext.plugins.trigger.StillFailingTrigger>\n <hudson.plugins.emailext.plugins.trigger.FixedTrigger>\n <email>\n <recipientList></recipientList>\n <subject>$PROJECT_DEFAULT_SUBJECT</subject>\n <body>$PROJECT_DEFAULT_CONTENT</body>\n <sendToDevelopers>true</sendToDevelopers>\n <sendToRequester>false</sendToRequester>\n <includeCulprits>false</includeCulprits>\n <sendToRecipientList>true</sendToRecipientList>\n </email>\n </hudson.plugins.emailext.plugins.trigger.FixedTrigger>\n </configuredTriggers>\n <contentType>default</contentType>\n <defaultSubject>$DEFAULT_SUBJECT</defaultSubject>\n <defaultContent>${JELLY_SCRIPT,template="html"}</defaultContent>\n <attachmentsPattern></attachmentsPattern>\n </hudson.plugins.emailext.ExtendedEmailPublisher>\n </publishers>\n <buildWrappers/>\n</project>\n"
- ConfigXMLTemplateAssembly =
Erubis::Eruby.new "<?xml version='1.0' encoding='UTF-8'?>\n<project>\n <actions/>\n <description></description>\n <keepDependencies>false</keepDependencies>\n <properties>\n <com.gmail.ikeike443.PlayAutoTestJobProperty/>\n </properties>\n <scm class=\"hudson.scm.NullSCM\"/>\n <canRoam>true</canRoam>\n <disabled>false</disabled>\n <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>\n <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>\n <triggers class=\"vector\"/>\n <concurrentBuild>false</concurrentBuild>\n <builders>\n <hudson.tasks.Shell>\n <command>#!/usr/bin/env ruby\n\nrequire 'rubygems'\nrequire 'rest_client'\nrequire 'pp'\nrequire 'json'\n\nSTDOUT.sync = true\n\nENDPOINT = 'http://ec2-54-247-191-95.eu-west-1.compute.amazonaws.com:7000'\nASSEMBLY_ID = '<%= assembly_id %>'\n\n# controling 'pretty-print' in log file\nJSON_OUTPUT_ENABLED = false\n\n# Method for deleting assembly instances\ndef deleteAssembly(assemblyId)\n responseAssemblyDelete = RestClient.post(ENDPOINT + '/rest/assembly/delete', 'assembly_id' => assemblyId)\n puts "Assembly has been deleted! Response: \#{responseAssemblyDelete}"\nend\n\n#\n# Method for pretty print of json responses\ndef json_print(json)\n pp json if JSON_OUTPUT_ENABLED\nend\n\npp "Script has been started!"\n\nputs "Using template ID: \#{ASSEMBLY_ID}" \n\n# Stage the assembly\nstageAssembly = RestClient.post(ENDPOINT + '/rest/assembly/stage', 'assembly_id' => ASSEMBLY_ID) \nassemblyId = JSON.parse(stageAssembly)["data"]["assembly_id"]\n\nputs "Using stage assembly ID: \#{assemblyId}" \n\n# Create a task for the cloned assembly instance\nresponseTask = RestClient.post(ENDPOINT + '/rest/assembly/create_task', 'assembly_id' => assemblyId)\n# Extract task id\ntaskId = JSON.parse(responseTask)["data"]["task_id"]\n# Execute the task\nputs "Starting task id: \#{taskId}"\nresponseTaskExecute = RestClient.post(ENDPOINT + '/rest/task/execute', 'task_id' => taskId)\n\ntaskStatus = 'executing'\n\nwhile taskStatus.include? 'executing'\n sleep 20\n responseTaskStatus = RestClient.post(ENDPOINT + '/rest/task/status', 'task_id '=> taskId)\n taskFullResponse = JSON.parse(responseTaskStatus)\n taskStatus = taskFullResponse["data"]["status"]\n puts "Task status: \#{taskStatus}"\n json_print JSON.parse(responseTaskStatus)\nend\n\nif taskStatus.include? 'fail' \n # Print error response from the service\n puts "Smoke test failed, response: "\n pp taskFullResponse\n # Delete the cloned assembly's instance\n deleteAssembly(assemblyId)\n abort("Task with ID \#{taskId} failed!")\nelse\n puts "Task with ID \#{taskId} success!"\nend\n\n\n#Create a task for the smoke test\nresponseSmokeTest = RestClient.post(ENDPOINT + '/rest/assembly/create_smoketests_task', 'assembly_id' => assemblyId)\njson_print responseSmokeTest\n\n#Extract task id\nsmokeTestId = JSON.parse(responseSmokeTest)["data"]["task_id"]\nputs "Created smoke test task with ID: \#{smokeTestId}"\n#Execute the task\nresponseSmokeExecute = RestClient.post(ENDPOINT + '/rest/task/execute', 'task_id' => smokeTestId)\n\njson_print JSON.parse(responseSmokeExecute)\n\nputs "Starting smoke test task with ID: \#{smokeTestId}"\n\nsmokeStatus = 'executing'\n\nwhile smokeStatus.include? 'executing'\n sleep 20\n responseSmokeStatus = RestClient.post(ENDPOINT + '/rest/task/status', 'task_id '=> smokeTestId)\n fullResponse = JSON.parse(responseSmokeStatus)\n smokeStatus = fullResponse["data"]["status"]\n puts "Smoke test status: \#{smokeStatus}"\nend\n\nif smokeStatus.include? 'failed'\n # Delete the cloned assembly's instance\n puts "Smoke test failed, response: "\n pp fullResponse\n\n # Getting log files for failed jobs\n task_log_response = RestClient.post(ENDPOINT + '/rest/task/get_logs', 'task_id '=> smokeTestId)\n puts "Logs response:" \n pp JSON.parse(task_log_response)\n\n deleteAssembly(assemblyId)\n abort("Smoke test failed.") \nend\n\n# Delete the cloned assembly's instance, this is the must!\n#deleteAssembly(assemblyId)\n\n#abort("Testing failure mail report.")\n</command>\n </hudson.tasks.Shell>\n </builders>\n <publishers>\n <hudson.tasks.Mailer>\n <recipients>[email protected]</recipients>\n <dontNotifyEveryUnstableBuild>false</dontNotifyEveryUnstableBuild>\n <sendToIndividuals>false</sendToIndividuals>\n </hudson.tasks.Mailer>\n </publishers>\n <buildWrappers/>\n</project>\n"
Class Method Summary collapse
- .generate_assembly_project(assembly_id) ⇒ Object
-
.generate_service_module_project(repo_url, module_id, branch) ⇒ Object
TODO: this is not working now.
Class Method Details
.generate_assembly_project(assembly_id) ⇒ Object
31 32 33 34 35 36 37 38 |
# File 'lib/command_helpers/jenkins_client/config_xml.rb', line 31 def self.generate_assembly_project(assembly_id) #TODO: not using branch argument #TODO: did not put in module_id yet template_bindings = { :assembly_id => assembly_id } ConfigXMLTemplateAssembly.result(template_bindings) end |
.generate_service_module_project(repo_url, module_id, branch) ⇒ Object
TODO: this is not working now
23 24 25 26 27 28 29 30 |
# File 'lib/command_helpers/jenkins_client/config_xml.rb', line 23 def self.generate_service_module_project(repo_url,module_id,branch) #TODO: not using branch argument #TODO: did not put in module_id yet template_bindings = { :repo_url => repo_url } ConfigXMLTemplateServiceModule.result(template_bindings) end |