3
0

Jenkinsfile 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. node {
  2. // Git checkout before load source the file
  3. checkout scm
  4. // sh '''
  5. // ls -lhrt
  6. // '''
  7. def rootDir = pwd()
  8. def yaml2Map = load "./sharedLibs/yaml2Map.groovy"
  9. def stages = load "./sharedLibs/stages.nodejs.groovy"
  10. def GLOBAL_CONFIG = yaml2Map.read('global.yaml').project
  11. def base_branch = ref.tokenize('/')[2]
  12. //生成Dockerfile
  13. def generateDockerfile = {Object CONFIG ->
  14. pathOfDockerfile = 'projdir'
  15. def module = CONFIG.service.module == null ? '' : (CONFIG.service.module[-1] == '/' ? CONFIG.service.module : CONFIG.service.module + '/')
  16. echo "-----> Generating Dockerfile: ${pathOfDockerfile}/Dockerfile ..."
  17. sh """cat > ${pathOfDockerfile}/Dockerfile<<EOF
  18. # BUILD partner dist
  19. FROM node:14-slim as BUILD
  20. LABEL stage=STATICRES-BUILD
  21. ENV NODE_OPTIONS=--max-old-space-size=28192
  22. ENV UV_THREADPOOL_SIZE=2
  23. COPY . /partner
  24. WORKDIR /partner
  25. RUN npm config set strict-ssl false && \
  26. npm config set registry https://registry.npm.taobao.org && \
  27. npm install && npm run build -- --parallel=false
  28. FROM nginx:1.23-alpine as FINAL
  29. # configs for default
  30. # COPY ./default.conf /etc/nginx/conf.d
  31. # COPY ./html /usr/share/nginx/html
  32. # COPY ./html /usr/share/nginx/partner/utils
  33. # configs for partner.hobbystocks.cn
  34. COPY ./partner.hobbystocks.net.conf /etc/nginx/conf.d
  35. COPY --from=BUILD /partner/dist /usr/share/nginx/partner
  36. EOF
  37. """
  38. return pathOfDockerfile
  39. }
  40. dir("front/DEV") {
  41. def PROJECT_CONFIG = yaml2Map.read('cfg.yaml').project
  42. def CONFIG = yaml2Map.merge(PROJECT_CONFIG, GLOBAL_CONFIG)
  43. CONFIG.docker.image = String.format(CONFIG.docker.image, CONFIG.service.name)
  44. println 'configs: ' + CONFIG
  45. String[] K8S_BACKUPS = ["deployment.yaml", "service.yaml"]
  46. stages.upgrade(CONFIG, base_branch, K8S_BACKUPS, [
  47. GENERATEDOCKERFILE: {generateDockerfile(CONFIG)}
  48. ])
  49. }
  50. }