1. stages:
    2. - npm_build # 镜像构建和打包推送阶段
    3. - npm_publish # 应用部署uat
    4. - npm_fresh_CDN
    5. variables:
    6. KUBECONFIG: /etc/deploy/config # 定义全局变量KUBECONFIG
    7. project: crm-in
    8. static_root: production_dist/
    9. dev_dir: /nfs/dev-k8s/namespace/dev/incdn/$project
    10. test_dir: /nfs/k8s-test/namespace/test/incdn/$project
    11. online_dir: /nfs/k8s/namespaces/production/incdn/$project
    12. domain: "https://$project.rccchina.com/"
    13. tools: yarn
    14. node_version: v12.14.1
    15. #tools: npm
    16. npm_dev_build_job: # job名称
    17. stage: npm_build # 关联的阶段名称
    18. variables:
    19. env: dev
    20. tags: # GitLab Runner的tag
    21. - new-ecs-dev
    22. cache:
    23. key: $project-$env
    24. paths:
    25. - node_modules/
    26. - yarn.lock
    27. - production_dist/
    28. only:
    29. - /^new-dev.*$/
    30. script:
    31. - nvm use $node_version
    32. - node -v
    33. - npm -v
    34. - ls
    35. - $tools install
    36. - $tools build:$env
    37. npm_online_build_job: # job名称
    38. stage: npm_build # 关联的阶段名称
    39. variables:
    40. env: online
    41. tags: # GitLab Runner的tag
    42. - ecs
    43. cache:
    44. key: $project-$env
    45. paths:
    46. - node_modules/
    47. - package-lock.json
    48. - production_dist/
    49. only:
    50. - tags
    51. script:
    52. - nvm use $node_version
    53. - node -v
    54. - npm -v
    55. - ls
    56. - $tools install
    57. - $tools build:$env
    58. npm_dev_publish_job: # job名称
    59. stage: npm_publish # 关联的阶段名称
    60. variables:
    61. env: dev
    62. tags: # GitLab Runner的tag
    63. - new-ecs-dev
    64. cache:
    65. key: $project-$env
    66. paths:
    67. - node_modules/
    68. - package-lock.json
    69. - production_dist/
    70. only:
    71. - /^new-dev.*$/
    72. script:
    73. - rm -rvf $dev_dir
    74. - cp -av $static_root $dev_dir
    75. # - python3 /opt/ops/gitlab/send_im.py $GITLAB_USER_EMAIL $CI_PROJECT_NAME $CI_COMMIT_REF_NAME $CI_JOB_URL $CI_PIPELINE_ID
    76. npm_online_publish_job: # job名称
    77. stage: npm_publish # 关联的阶段名称
    78. variables:
    79. env: online
    80. tags: # GitLab Runner的tag
    81. - ecs
    82. cache:
    83. key: $project-$env
    84. paths:
    85. - node_modules/
    86. - package-lock.json
    87. - production_dist/
    88. only:
    89. - tags
    90. script:
    91. - rm -rvf $online_dir
    92. - cp -av $static_root $online_dir
    93. npm_online_fresh_cdn_job:
    94. stage: npm_fresh_CDN # 关联的阶段名称
    95. variables:
    96. env: online
    97. tags: # GitLab Runner的tag
    98. - ecs
    99. cache:
    100. key: $project-$env
    101. paths:
    102. - node_modules/
    103. - package-lock.json
    104. - production_dist/
    105. only:
    106. - tags
    107. script:
    108. - python3 /opt/ops/cdn/refresh_cdn.py $domain
    109. - python3 /opt/ops/gitlab/send_im.py $GITLAB_USER_EMAIL $CI_PROJECT_NAME $CI_COMMIT_REF_NAME $CI_JOB_URL $CI_PIPELINE_ID $CI_COMMIT_MESSAGE
    110. #deploy_k8s_pro_v2_job: # job名称
    111. # image: registry.cn-hangzhou.aliyuncs.com/haoshuwei24/kubectl:1.16.6 # 关联的阶段名称
    112. # stage: deploy_production
    113. # tags:
    114. # - pro-k8s-v2-runner
    115. # only:
    116. # - master
    117. # script:
    118. # - mkdir -p /etc/deploy
    119. # - curl http://devops.rccchina.com/kustomize/deploy/pro/$CI_PROJECT_NAME/$CI_PIPELINE_ID
    120. # when: manual