Jenkinsfile 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. // node {
  2. // checkout scm
  3. // def rootDir = pwd()
  4. // println rootDir
  5. // def yaml2Map = load "./sharedLibs/yaml2Map.groovy"
  6. // def stages = load "./sharedLibs/stages.k8s.groovy"
  7. // def GLOBAL_CONFIG = yaml2Map.read('global.yaml').project
  8. // jdk = tool name: 'openJDK8'
  9. // env.JAVA_HOME = "${jdk}"
  10. // dir("AHX-app/DEV") {
  11. // def PROJECT_CONFIG = yaml2Map.read('cfg.yaml').project
  12. // def CONFIG = yaml2Map.merge(PROJECT_CONFIG, GLOBAL_CONFIG)
  13. // CONFIG.docker.image = String.format(CONFIG.docker.image, CONFIG.service.name)
  14. // println 'configs: ' + CONFIG
  15. // def generateDockerfile = {->
  16. // pathOfDockerfile='projdir'
  17. // module = CONFIG.service.module
  18. // module = module == null ? '' : (module[-1] == '/' ? module : module + '/')
  19. // JAR = CONFIG.service.jar
  20. // sh """cat > ${pathOfDockerfile}/Dockerfile<<EOF
  21. // #FROM openjdk:8-alpine as final
  22. // # RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
  23. // # apk add --update --nocache ttf-dejavu fontconfig
  24. // FROM registry.cn-shanghai.aliyuncs.com/poyee/openjdk:8-slim
  25. // ADD skywalking-agent /app/skywalking-agent
  26. // ADD ${module}target/${JAR} /app/target/${JAR}
  27. // EOF
  28. // """
  29. // return pathOfDockerfile
  30. // }
  31. // String[] JAVA_ARGS = ["-Djava.security.egd=file:/dev/./urandom",
  32. // "-javaagent:/app/skywalking-agent/skywalking-agent.jar",
  33. // "-Dskywalking.agent.service_name=${CONFIG.service.name}",
  34. // "-Dskywalking.collector.backend_service=${CONFIG.skywalking.address}",
  35. // "-Xmx1024m",
  36. // "-Dserver.port=80",
  37. // "-jar", "/app/target/${CONFIG.service.jar}",
  38. // "--spring.config.location=file:/app/configs/application.yml,file:/app/configs/application-druid.yml"]
  39. // String[] K8S_BACKUPS = []
  40. // if ("upgrade" == action || "upgrade:selected" == action) {
  41. // def base_branch = actionParameter.tokenize('/')[2]
  42. // stages.upgrade(CONFIG, base_branch, K8S_BACKUPS, [
  43. // 'POST_GITCLONE': { sh 'cp -r ../../skywalking-agent-9.0.0 projdir/skywalking-agent' },
  44. // 'GENERATEDOCKERFILE': {generateDockerfile()},
  45. // 'K3SDEPLOY' : {stages.deployWithConfigmaps(CONFIG.service, CONFIG.k3s, base_branch, JAVA_ARGS, "./configmap-env.ini", "./configmap")}
  46. // ])
  47. // }
  48. // sh 'rm -rf projdir/skywalking-agent'
  49. // }
  50. // }
  51. pipeline {
  52. agent any
  53. parameters {
  54. choice(name: 'BRANCH',choices:["release"], description: '选择需要发布的节点')
  55. choice(name: 'DEPLOYMENT_TYPE',choices:["upgrade"], description: '发布类型')
  56. }
  57. stages {
  58. stage('Example') {
  59. steps {
  60. script {
  61. node {
  62. checkout scm
  63. def rootDir = pwd()
  64. println rootDir
  65. def yaml2Map = load "./sharedLibs/yaml2Map.groovy"
  66. def stages = load "./sharedLibs/stages.k8s.groovy"
  67. def GLOBAL_CONFIG = yaml2Map.read('global.yaml').project
  68. jdk = tool name: 'openJDK8'
  69. env.JAVA_HOME = "${jdk}"
  70. dir("poyee-app/DEV") {
  71. def PROJECT_CONFIG = yaml2Map.read('cfg.yaml').project
  72. def CONFIG = yaml2Map.merge(PROJECT_CONFIG, GLOBAL_CONFIG)
  73. CONFIG.docker.image = String.format(CONFIG.docker.image, CONFIG.service.name)
  74. println 'configs: ' + CONFIG
  75. def generateDockerfile = {->
  76. pathOfDockerfile='projdir'
  77. module = CONFIG.service.module
  78. module = module == null ? '' : (module[-1] == '/' ? module : module + '/')
  79. JAR = CONFIG.service.jar
  80. sh """cat > ${pathOfDockerfile}/Dockerfile<<EOF
  81. FROM registry.cn-shanghai.aliyuncs.com/poyee/openjdk:8-slim
  82. ADD ${module}target/${JAR} /app/target/${JAR}
  83. EOF
  84. """
  85. return pathOfDockerfile
  86. }
  87. String[] JAVA_ARGS = ["-Djava.security.egd=file:/dev/./urandom",
  88. "-Xmx1024m",
  89. "-Dserver.port=80",
  90. "-jar", "/app/target/${CONFIG.service.jar}",
  91. "--spring.config.location=file:/app/configs/application.yml,file:/app/configs/application-druid.yml"]
  92. String[] K8S_BACKUPS = []
  93. def action = "${params.DEPLOYMENT_TYPE}"
  94. if ("upgrade" == action || "upgrade:selected" == action) {
  95. def base_branch = "${params.BRANCH}"
  96. stages.upgrade(CONFIG, base_branch, K8S_BACKUPS, [
  97. 'GENERATEDOCKERFILE': {generateDockerfile()},
  98. 'K3SDEPLOY' : {stages.deployWithConfigmaps(CONFIG.service, CONFIG.k3s, base_branch, JAVA_ARGS, "./configmap-env.ini", "./configmap","ahxpm")}
  99. ])
  100. }
  101. sh 'rm -rf projdir/skywalking-agent'
  102. }
  103. }
  104. }
  105. }
  106. }
  107. stage('Deploy') {
  108. steps {
  109. echo "Deployment approved by: ${env.APPROVED_BY}"
  110. }
  111. }
  112. }
  113. }