Guest User

Untitled

a guest
Nov 5th, 2018
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.28 KB | None | 0 0
  1. #!/usr/bin/env groovy
  2.  
  3. import java.util.logging.Logger
  4. import jenkins.model.Jenkins
  5. import hudson.model.*
  6. import hudson.markup.RawHtmlMarkupFormatter
  7. import javaposse.jobdsl.dsl.DslScriptLoader
  8. import javaposse.jobdsl.plugin.JenkinsJobManagement
  9. import com.cloudbees.plugins.credentials.*
  10. import com.cloudbees.plugins.credentials.common.*
  11. import com.cloudbees.plugins.credentials.domains.*
  12. import com.cloudbees.plugins.credentials.impl.*
  13.  
  14.  
  15. /**
  16. * Startup script
  17. */
  18.  
  19. Logger.global.info("[Running] startup script")
  20. Logger.global.info("[Running] startup script for credentials")
  21. addCreds()
  22.  
  23. configureJenkins()
  24.  
  25. seedJenkinsJobs()
  26.  
  27. seedJenkinsViews()
  28.  
  29. Logger.global.info("[Done] startup script")
  30.  
  31.  
  32. /**
  33. * Add github authentication
  34. */
  35. private void addCreds(){
  36.  
  37. githubKey = System.getenv("GITHUB_KEY")
  38. githubUser = System.getenv("GITHUB_USER")
  39.  
  40. Logger.global.info("[Creds] Adding Creditals " + githubUser)
  41.  
  42. store = Jenkins.instance.getExtensionList('com.cloudbees.plugins.credentials.SystemCredentialsProvider')[0].getStore()
  43.  
  44.  
  45. println("Setting github user as " + githubUser)
  46. println("Setting github key as ********* ")
  47.  
  48. Logger.global.info("[Creds] setting user to " + githubUser)
  49.  
  50. usernameAndPassword = new UsernamePasswordCredentialsImpl(
  51. CredentialsScope.GLOBAL,
  52. "github-ci-key", "GitHub Access",
  53. githubUser,
  54. githubKey
  55. )
  56.  
  57. domain = Domain.global()
  58.  
  59. Logger.global.info("[Creds] Removing Old Creditals " + githubUser)
  60. allCreds = store.getCredentials(domain)
  61. allCreds.each{
  62. store.removeCredentials(domain, it)
  63. }
  64.  
  65. Logger.global.info("[Creds] Adding new Creditals " + githubUser)
  66. store.addCredentials(domain, usernameAndPassword)
  67.  
  68. }
  69. /**
  70. * Configure jenkins default settings
  71. */
  72. private void configureJenkins() {
  73. // disable jenkins security
  74. Jenkins.getInstance().disableSecurity()
  75.  
  76. // disable security warning
  77. List<AdministrativeMonitor> p = jenkins.model.Jenkins.instance.getActiveAdministrativeMonitors()
  78. p.each { x ->
  79. if (x.getClass().name.contains("SecurityIsOffMonitor")) {
  80. x.disable(true)
  81. }
  82. }
  83.  
  84. // disable remoting cli
  85. jenkins.model.Jenkins.instance.getDescriptor("jenkins.CLI").get().setEnabled(false)
  86.  
  87. // set markupformatter
  88. Jenkins.instance.setMarkupFormatter(new RawHtmlMarkupFormatter(false))
  89.  
  90. // set jenkins executors number
  91. Jenkins.instance.setNumExecutors(6)
  92. }
  93.  
  94. /**
  95. * Creates jenkins default views
  96. */
  97. private void seedJenkinsViews() {
  98. File seeds = new File('/var/jenkins_home/seeds/views/')
  99. JenkinsJobManagement jobManagement = new JenkinsJobManagement(System.out, [:], new File('.'))
  100.  
  101. new DslScriptLoader(jobManagement).with {
  102. seeds.eachFileRecurse (groovy.io.FileType.FILES) { file ->
  103. if (file.name.endsWith('.groovy')) {
  104. runScript(file.text)
  105. }
  106. }
  107. }
  108. }
  109.  
  110. /**
  111. * Creates jenkins default jobs
  112. */
  113. private void seedJenkinsJobs() {
  114. File seeds = new File('/var/jenkins_home/seeds/jobs/')
  115. JenkinsJobManagement jobManagement = new JenkinsJobManagement(System.out, [:], new File('.'))
  116.  
  117. new DslScriptLoader(jobManagement).with {
  118. seeds.eachFileRecurse (groovy.io.FileType.FILES) { file ->
  119. if (file.name.endsWith('.groovy')) {
  120. runScript(file.text)
  121. }
  122. }
  123. }
  124. }
Add Comment
Please, Sign In to add comment