Module: DTK::Client::JenkinsClient::ConfigXML
- Defined in:
- lib/command_helpers/jenkins_client/config_xml.rb
Constant Summary collapse
- ConfigXMLTemplateServiceModule =
Erubis::Eruby.new <<eos <?xml version='1.0' encoding='UTF-8'?> <project> <actions/> <description></description> <keepDependencies>false</keepDependencies> <properties> <com.gmail.ikeike443.PlayAutoTestJobProperty/> </properties> <scm class="hudson.plugins.git.GitSCM"> <configVersion>2</configVersion> <userRemoteConfigs> <hudson.plugins.git.UserRemoteConfig> <name></name> <refspec></refspec> <url><%= repo_url %></url> </hudson.plugins.git.UserRemoteConfig> </userRemoteConfigs> <branches> <hudson.plugins.git.BranchSpec> <name>**</name> </hudson.plugins.git.BranchSpec> </branches> <disableSubmodules>false</disableSubmodules> <recursiveSubmodules>false</recursiveSubmodules> <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations> <authorOrCommitter>false</authorOrCommitter> <clean>false</clean> <wipeOutWorkspace>false</wipeOutWorkspace> <pruneBranches>false</pruneBranches> <remotePoll>false</remotePoll> <ignoreNotifyCommit>false</ignoreNotifyCommit> <buildChooser class="hudson.plugins.git.util.DefaultBuildChooser"/> <gitTool>Default</gitTool> <submoduleCfg class="list"/> <relativeTargetDir></relativeTargetDir> <reference></reference> <excludedRegions></excludedRegions> <excludedUsers></excludedUsers> <gitConfigName></gitConfigName> <gitConfigEmail></gitConfigEmail> <skipTag>false</skipTag> <includedRegions></includedRegions> <scmName></scmName> </scm> <canRoam>true</canRoam> <disabled>false</disabled> <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> <triggers class="vector"/> <concurrentBuild>false</concurrentBuild> <builders> <hudson.tasks.Shell> <command>ruby /var/lib/jenkins/r8_e2e.rb</command> </hudson.tasks.Shell> </builders> <publishers> <hudson.plugins.emailext.ExtendedEmailPublisher> <recipientList>$DEFAULT_RECIPIENTS</recipientList> <configuredTriggers> <hudson.plugins.emailext.plugins.trigger.FailureTrigger> <email> <recipientList></recipientList> <subject>$PROJECT_DEFAULT_SUBJECT</subject> <body>$PROJECT_DEFAULT_CONTENT</body> <sendToDevelopers>true</sendToDevelopers> <sendToRequester>false</sendToRequester> <includeCulprits>false</includeCulprits> <sendToRecipientList>true</sendToRecipientList> </email> </hudson.plugins.emailext.plugins.trigger.FailureTrigger> <hudson.plugins.emailext.plugins.trigger.StillFailingTrigger> <email> <recipientList></recipientList> <subject>$PROJECT_DEFAULT_SUBJECT</subject> <body>$PROJECT_DEFAULT_CONTENT</body> <sendToDevelopers>true</sendToDevelopers> <sendToRequester>false</sendToRequester> <includeCulprits>false</includeCulprits> <sendToRecipientList>false</sendToRecipientList> </email> </hudson.plugins.emailext.plugins.trigger.StillFailingTrigger> <hudson.plugins.emailext.plugins.trigger.FixedTrigger> <email> <recipientList></recipientList> <subject>$PROJECT_DEFAULT_SUBJECT</subject> <body>$PROJECT_DEFAULT_CONTENT</body> <sendToDevelopers>true</sendToDevelopers> <sendToRequester>false</sendToRequester> <includeCulprits>false</includeCulprits> <sendToRecipientList>true</sendToRecipientList> </email> </hudson.plugins.emailext.plugins.trigger.FixedTrigger> </configuredTriggers> <contentType>default</contentType> <defaultSubject>$DEFAULT_SUBJECT</defaultSubject> <defaultContent>${JELLY_SCRIPT,template="html"}</defaultContent> <attachmentsPattern></attachmentsPattern> </hudson.plugins.emailext.ExtendedEmailPublisher> </publishers> <buildWrappers/> </project> eos
- ConfigXMLTemplateAssembly =
Erubis::Eruby.new <<eos <?xml version='1.0' encoding='UTF-8'?> <project> <actions/> <description></description> <keepDependencies>false</keepDependencies> <properties> <com.gmail.ikeike443.PlayAutoTestJobProperty/> </properties> <scm class="hudson.scm.NullSCM"/> <canRoam>true</canRoam> <disabled>false</disabled> <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> <triggers class="vector"/> <concurrentBuild>false</concurrentBuild> <builders> <hudson.tasks.Shell> <command>#!/usr/bin/env ruby require 'rubygems' require 'rest_client' require 'pp' require 'json' STDOUT.sync = true ENDPOINT = 'http://ec2-54-247-191-95.eu-west-1.compute.amazonaws.com:7000' ASSEMBLY_ID = '<%= assembly_id %>' # controling 'pretty-print' in log file JSON_OUTPUT_ENABLED = false # Method for deleting assembly instances def deleteAssembly(assemblyId) responseAssemblyDelete = RestClient.post(ENDPOINT + '/rest/assembly/delete', 'assembly_id' => assemblyId) puts "Assembly has been deleted! Response: #{responseAssemblyDelete}" end # # Method for pretty print of json responses def json_print(json) pp json if JSON_OUTPUT_ENABLED end pp "Script has been started!" puts "Using template ID: #{ASSEMBLY_ID}" # Stage the assembly stageAssembly = RestClient.post(ENDPOINT + '/rest/assembly/stage', 'assembly_id' => ASSEMBLY_ID) assemblyId = JSON.parse(stageAssembly)["data"]["assembly_id"] puts "Using stage assembly ID: #{assemblyId}" # Create a task for the cloned assembly instance responseTask = RestClient.post(ENDPOINT + '/rest/assembly/create_task', 'assembly_id' => assemblyId) # Extract task id taskId = JSON.parse(responseTask)["data"]["task_id"] # Execute the task puts "Starting task id: #{taskId}" responseTaskExecute = RestClient.post(ENDPOINT + '/rest/task/execute', 'task_id' => taskId) taskStatus = 'executing' while taskStatus.include? 'executing' sleep 20 responseTaskStatus = RestClient.post(ENDPOINT + '/rest/task/status', 'task_id '=> taskId) taskFullResponse = JSON.parse(responseTaskStatus) taskStatus = taskFullResponse["data"]["status"] puts "Task status: #{taskStatus}" json_print JSON.parse(responseTaskStatus) end if taskStatus.include? 'fail' # Print error response from the service puts "Smoke test failed, response: " pp taskFullResponse # Delete the cloned assembly's instance deleteAssembly(assemblyId) abort("Task with ID #{taskId} failed!") else puts "Task with ID #{taskId} success!" end #Create a task for the smoke test responseSmokeTest = RestClient.post(ENDPOINT + '/rest/assembly/create_smoketests_task', 'assembly_id' => assemblyId) json_print responseSmokeTest #Extract task id smokeTestId = JSON.parse(responseSmokeTest)["data"]["task_id"] puts "Created smoke test task with ID: #{smokeTestId}" #Execute the task responseSmokeExecute = RestClient.post(ENDPOINT + '/rest/task/execute', 'task_id' => smokeTestId) json_print JSON.parse(responseSmokeExecute) puts "Starting smoke test task with ID: #{smokeTestId}" smokeStatus = 'executing' while smokeStatus.include? 'executing' sleep 20 responseSmokeStatus = RestClient.post(ENDPOINT + '/rest/task/status', 'task_id '=> smokeTestId) fullResponse = JSON.parse(responseSmokeStatus) smokeStatus = fullResponse["data"]["status"] puts "Smoke test status: #{smokeStatus}" end if smokeStatus.include? 'failed' # Delete the cloned assembly's instance puts "Smoke test failed, response: " pp fullResponse # Getting log files for failed jobs task_log_response = RestClient.post(ENDPOINT + '/rest/task/get_logs', 'task_id '=> smokeTestId) puts "Logs response:" pp JSON.parse(task_log_response) deleteAssembly(assemblyId) abort("Smoke test failed.") end # Delete the cloned assembly's instance, this is the must! #deleteAssembly(assemblyId) #abort("Testing failure mail report.") </command> </hudson.tasks.Shell> </builders> <publishers> <hudson.tasks.Mailer> <recipients>[email protected]</recipients> <dontNotifyEveryUnstableBuild>false</dontNotifyEveryUnstableBuild> <sendToIndividuals>false</sendToIndividuals> </hudson.tasks.Mailer> </publishers> <buildWrappers/> </project> eos
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 |