Jenkinsfile 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. node {
  2. // Git checkout before load source the file
  3. checkout scm
  4. // sh '''
  5. // ls -lhrt
  6. // '''
  7. def base_branch = ref.tokenize('/')[2]
  8. def rootDir = pwd()
  9. def yaml2Map = load "./sharedLibs/yaml2Map.groovy"
  10. def stages = load "./sharedLibs/stages.nodejs.groovy"
  11. def GLOBAL_CONFIG = yaml2Map.read('global.yaml').project
  12. dir("AuctionApp/DEV/H5-App") {
  13. def PROJECT_CONFIG = yaml2Map.read('cfg.yaml').project
  14. def CONFIG = yaml2Map.merge(PROJECT_CONFIG, GLOBAL_CONFIG)
  15. CONFIG.docker.image = String.format(CONFIG.docker.image, CONFIG.service.name)
  16. println 'configs: ' + CONFIG
  17. //生成Dockerfile
  18. def generateDockerfile = {->
  19. pathOfDockerfile = 'projdir'
  20. def module = CONFIG.service.module == null ? '' : (CONFIG.service.module[-1] == '/' ? CONFIG.service.module : CONFIG.service.module + '/')
  21. echo "-----> Generating Dockerfile: ${pathOfDockerfile}/Dockerfile ..."
  22. sh """cat > ${pathOfDockerfile}/Dockerfile<<EOF
  23. FROM node:14-slim as BUILD
  24. LABEL stage=STATICRES-BUILD
  25. COPY ./ /proj
  26. WORKDIR /proj
  27. RUN npm config set registry https://registry.npm.taobao.org && npm install && npm run build
  28. FROM nginx:1.23-alpine as FINAL
  29. # configs for auction-dev.hobbystocks.cn
  30. COPY ./dockerfiles/auction-h5.conf /etc/nginx/conf.d/default.conf
  31. COPY ./other /usr/share/nginx
  32. COPY --from=BUILD /proj/dist /usr/share/nginx/auction
  33. EOF
  34. """
  35. return pathOfDockerfile
  36. }
  37. stages.execute(CONFIG, base_branch, [
  38. 'GENERATEDOCKERFILE': generateDockerfile
  39. ])
  40. }
  41. }