stages.groovy 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. // can be called locally, without "def"
  2. myUtil = { ->
  3. println "hello myUtil"
  4. }
  5. sharedLibsPath = "${env.WORKSPACE}/sharedLibs"
  6. def applyService(SERVICE, K3S, String base_branch) {
  7. print "loading ${sharedLibsPath}/k3sUtil.groovy..."
  8. def k3sUtils = load "${sharedLibsPath}/k3sUtil.groovy"
  9. kvs = [:]
  10. kvs.put('<service_name>', SERVICE.name)
  11. kvs.put('<service_version>', SERVICE.version)
  12. kvs.put('<release>', base_branch)
  13. k3sUtils.generateService(kvs)
  14. k3sUtils.applyService(K3S)
  15. }
  16. // 默认Java项目K8s部署(带configmap_配置目录)
  17. def deployWithConfigmaps(SERVICE, K3S, String base_branch, String[] args, configmapEnv="./configmap-env.ini", configmapConf="./configmap") {
  18. print "loading ${sharedLibsPath}/k3sUtil.groovy..."
  19. def k3sUtils = load "${sharedLibsPath}/k3sUtil.groovy"
  20. def configmap_env_name = k3sUtils.applyConfigMapEnv(SERVICE, K3S, configmapEnv)
  21. def configmap_conf_name = k3sUtils.applyConfigMapConfig(SERVICE, K3S, configmapConf)
  22. def java_args = '['
  23. args.each{item -> java_args += "\"$item\","}
  24. java_args = java_args[0..-2] + ']'
  25. kvs = [:]
  26. kvs.put('<service_name>', SERVICE.name)
  27. kvs.put('<service_version>', SERVICE.version)
  28. kvs.put('<release>', base_branch)
  29. kvs.put('<COMMIT_SHA>', COMMIT_SHA)
  30. kvs.put('<imagePullSecret>', K3S.pull_secretId)
  31. kvs.put('<docker_image>', imageUri)
  32. kvs.put('<java_args>', java_args)
  33. if (SERVICE.health != null)
  34. kvs.put('<service_health>', SERVICE.health)
  35. kvs.put('<configmap_env_name>', configmap_env_name)
  36. kvs.put('<configmap_conf_name>', configmap_conf_name)
  37. k3sUtils.generateDeployment(kvs, 'deployment.yaml')
  38. k3sUtils.applyDeployment(K3S)
  39. }
  40. // 默认Java项目K8s部署(仅配置configmap_Environment)
  41. def deployWithConfigmapEnvOnly(SERVICE, K3S, String base_branch, String[] args, configmapEnv="./configmap-env.ini"){
  42. print "loading ${sharedLibsPath}/k3sUtil.groovy..."
  43. def k3sUtils = load "${sharedLibsPath}/k3sUtil.groovy"
  44. def configmap_env_name = k3sUtils.applyConfigMapEnv(SERVICE, K3S, configmapEnv)
  45. print "configmap配置信息: ${configmap_env_name}"
  46. def java_args = '['
  47. args.each{item -> java_args += "\"$item\","}
  48. java_args = java_args[0..-2] + ']'
  49. kvs = [:]
  50. kvs.put('<service_name>', SERVICE.name)
  51. kvs.put('<service_version>', SERVICE.version)
  52. kvs.put('<release>', base_branch)
  53. kvs.put('<COMMIT_SHA>', COMMIT_SHA)
  54. kvs.put('<imagePullSecret>', K3S.pull_secretId)
  55. kvs.put('<docker_image>', imageUri)
  56. kvs.put('<java_args>', java_args)
  57. if (SERVICE.health != null)
  58. kvs.put('<service_health>', SERVICE.health)
  59. kvs.put('<configmap_env_name>', configmap_env_name)
  60. k3sUtils.generateDeployment(kvs, 'deployment.yaml')
  61. k3sUtils.applyDeployment(K3S)
  62. }
  63. // Jenkins pipeline stages
  64. def execute(CONFIG, base_branch, closures=[:]) {
  65. stage('source code check out') {
  66. println "loading ${sharedLibsPath}/gitUtil.groovy..."
  67. def gitUtils = load "${sharedLibsPath}/gitUtil.groovy"
  68. COMMIT_SHA = closures.git != null ? closures.GITCLONE() : gitUtils.clone(CONFIG.git, base_branch)
  69. }
  70. stage("docker image build") {
  71. println "loading ${sharedLibsPath}/imageBuilder.groovy..."
  72. def imageBuilder = load "${sharedLibsPath}/imageBuilder.groovy"
  73. if (closures.BUILDIMAGE != null) {
  74. imageUri = closures.BUILDIMAGE()
  75. return
  76. }
  77. imageBuilder.buildJar()
  78. imageUri = imageBuilder.buildDockerImage(CONFIG.service, CONFIG.docker, base_branch)
  79. imageBuilder.cleanJar()
  80. }
  81. stage("apply K8S ConfigMaps && Deployment") {
  82. if (closures.K3SDEPLOY != null) {
  83. closures.K3SDEPLOY()
  84. return
  85. }
  86. deployWithConfigmapEnvOnly(CONFIG.service, CONFIG.k3s, base_branch, 'dev')
  87. }
  88. }
  89. return this