3
0

Jenkinsfile 2.9 KB

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