Jenkinsfile 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. node {
  2. // Git checkout before load source the file
  3. checkout scm
  4. def rootDir = pwd()
  5. def yaml2Map = load "./sharedLibs/yaml2Map.groovy"
  6. def stages = load "./sharedLibs/stages.k8s.groovy"
  7. jdk = tool name: 'openJDK8'
  8. env.JAVA_HOME = "${jdk}"
  9. def GLOBAL_CONFIG = yaml2Map.read('global.yaml').project
  10. dir("poyee-mall/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:17-alpine as final
  22. ADD skywalking-agent /app/skywalking-agent
  23. ADD ${module}target/${JAR} /app/target/${JAR}
  24. EOF
  25. """
  26. return pathOfDockerfile
  27. }
  28. String[] JAVA_ARGS = ["-Djava.security.egd=file:/dev/./urandom",
  29. "-Djava.awt.headless=true",
  30. "-javaagent:/app/skywalking-agent/skywalking-agent.jar",
  31. "-Dskywalking.agent.service_name=${CONFIG.service.name}",
  32. "-Dskywalking.collector.backend_service=${CONFIG.skywalking.address}",
  33. "-Xmx1024m",
  34. "-Dspring.profiles.active=dev",
  35. "-Dserver.port=80",
  36. "-jar","/app/target/${CONFIG.service.jar}"]
  37. String[] K8S_BACKUPS = []
  38. // sh 'cp -r ../../skywalking-agent-9.0.0 projdir/skywalking-agent'
  39. if ("upgrade" == action || "upgrade:selected" == action) {
  40. def base_branch = actionParameter.tokenize('/')[2]
  41. stages.upgrade(CONFIG, base_branch, K8S_BACKUPS, [
  42. 'POST_GITCLONE': { sh 'cp -r ../../skywalking-agent-9.0.0 projdir/skywalking-agent' },
  43. 'GENERATEDOCKERFILE': {generateDockerfile()},
  44. 'K3SDEPLOY' : {stages.deployWithConfigmapEnvOnly(CONFIG.service, CONFIG.k3s, base_branch, JAVA_ARGS, "./configmap-env.ini","ahxpm")}
  45. ])
  46. }
  47. sh 'rm -rf projdir/skywalking-agent'
  48. }
  49. }