Jenkinsfile 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. pipeline {
  2. agent any
  3. parameters {
  4. choice(name: 'BRANCH',choices:["dev","cr","1.1.1"], description: '选择需要发布的节点')
  5. }
  6. stages {
  7. stage('Example') {
  8. steps {
  9. script {
  10. node {
  11. // Git checkout before load source the file
  12. checkout scm
  13. // def base_branch = ref.tokenize('/')[2]
  14. def base_branch = "${params.BRANCH}"
  15. def rootDir = pwd()
  16. def yaml2Map = load "./sharedLibs/yaml2Map.groovy"
  17. def stages = load "./sharedLibs/stages.k8s.groovy"
  18. def GLOBAL_CONFIG = yaml2Map.read('global.yaml').project
  19. jdk = tool name: 'openJDK17'
  20. env.JAVA_HOME = "${jdk}"
  21. dir("AHX-im/DEV") {
  22. sh "ls /var/jenkins_home/workspace/IM-DEV/poyee-im/DEV"
  23. def PROJECT_CONFIG = yaml2Map.read('cfg.yaml').project
  24. def CONFIG = yaml2Map.merge(PROJECT_CONFIG, GLOBAL_CONFIG)
  25. CONFIG.docker.image = String.format(CONFIG.docker.image, CONFIG.service.name)
  26. println 'configs: ' + CONFIG
  27. def generateDockerfile = {->
  28. pathOfDockerfile='projdir'
  29. module = CONFIG.service.module
  30. module = module == null ? '' : (module[-1] == '/' ? module : module + '/')
  31. JAR = CONFIG.service.jar
  32. sh """cat > ${pathOfDockerfile}/Dockerfile<<EOF
  33. FROM openjdk:17-alpine as final
  34. ADD ${module}target/${JAR} /app/target/${JAR}
  35. EOF
  36. """
  37. return pathOfDockerfile
  38. }
  39. // sh 'cp -r ../../skywalking-agent-9.0.0 projdir/skywalking-agent'
  40. String[] JAVA_ARGS = ["-Djava.security.egd=file:/dev/./urandom",
  41. "-Xmx512m",
  42. "-Dspring.profiles.active=dev",
  43. "-Dserver.port=80",
  44. "-jar","/app/target/${CONFIG.service.jar}"]
  45. stages.execute(CONFIG, base_branch, [
  46. 'GENERATEDOCKERFILE': {generateDockerfile()},
  47. 'K3SDEPLOY' : {stages.deployWithConfigmapEnvOnly(CONFIG.service, CONFIG.k3s, base_branch, JAVA_ARGS, './configmap-env.ini')}
  48. ])
  49. sh 'rm -rf projdir/skywalking-agent'
  50. }
  51. }
  52. }
  53. }
  54. }
  55. }
  56. }