Jenkinsfile 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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-Partner") {
  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:16-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:prod
  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
  31. COPY --from=BUILD /proj/dist /usr/share/nginx/auction
  32. EOF
  33. """
  34. return pathOfDockerfile
  35. }
  36. stages.execute(CONFIG, base_branch, [
  37. 'GENERATEDOCKERFILE': generateDockerfile
  38. ])
  39. }
  40. }