Jenkinsfile 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. pipeline {
  2. agent any
  3. parameters {
  4. choice(name: 'BRANCH',choices:["release"], description: '选择需要发布的节点')
  5. choice(name: 'DEPLOYMENT_TYPE',choices:["upgrade"], description: '发布类型')
  6. }
  7. stages {
  8. stage('Example') {
  9. steps {
  10. script {
  11. node {
  12. checkout scm
  13. def rootDir = pwd()
  14. println rootDir
  15. def yaml2Map = load "./sharedLibs/yaml2Map.groovy"
  16. def stages = load "./sharedLibs/stages.k8s.groovy"
  17. def GLOBAL_CONFIG = yaml2Map.read('global.yaml').project
  18. jdk = tool name: 'openJDK8'
  19. env.JAVA_HOME = "${jdk}"
  20. dir("poyee-admin/DEV") {
  21. def PROJECT_CONFIG = yaml2Map.read('cfg.yaml').project
  22. def CONFIG = yaml2Map.merge(PROJECT_CONFIG, GLOBAL_CONFIG)
  23. CONFIG.docker.image = String.format(CONFIG.docker.image, CONFIG.service.name)
  24. println 'configs: ' + CONFIG
  25. def generateDockerfile = {->
  26. pathOfDockerfile='projdir'
  27. module = CONFIG.service.module
  28. module = module == null ? '' : (module[-1] == '/' ? module : module + '/')
  29. JAR = CONFIG.service.jar
  30. sh """cat > ${pathOfDockerfile}/Dockerfile<<EOF
  31. FROM registry.cn-shanghai.aliyuncs.com/poyee/openjdk:8-slim
  32. ADD ${module}target/${JAR} /app/target/${JAR}
  33. EOF
  34. """
  35. return pathOfDockerfile
  36. }
  37. String[] JAVA_ARGS = ["-Djava.security.egd=file:/dev/./urandom",
  38. "-Xmx1024m",
  39. "-Dserver.port=80",
  40. "-jar", "/app/target/${CONFIG.service.jar}",
  41. "--spring.config.location=file:/app/configs/application.yml,file:/app/configs/application-druid.yml"]
  42. String[] K8S_BACKUPS = []
  43. def action = "${params.DEPLOYMENT_TYPE}"
  44. if ("upgrade" == action || "upgrade:selected" == action) {
  45. def base_branch = "${params.BRANCH}"
  46. stages.upgrade(CONFIG, base_branch, K8S_BACKUPS, [
  47. 'GENERATEDOCKERFILE': {generateDockerfile()},
  48. 'K3SDEPLOY' : {stages.deployWithConfigmaps(CONFIG.service, CONFIG.k3s, base_branch, JAVA_ARGS, "./configmap-env.ini", "./configmap","ahxpm")}
  49. ])
  50. }
  51. sh 'rm -rf projdir/skywalking-agent'
  52. }
  53. }
  54. }
  55. }
  56. }
  57. stage('Deploy') {
  58. steps {
  59. echo "Deployment approved by: ${env.APPROVED_BY}"
  60. }
  61. }
  62. }
  63. }