#!/usr/bin/groovy
@Library('pipeline-library')
def utils = new io.fabric8.Utils()
clientsNode{

  def envTest = 'housemanage-test'
  def envPrd = 'housemanage'

  def projectName = "${JOB_BASE_NAME}"
  def newVersion = ''
  def deployType = ""
  try {
    deployType = DEPLOY_TYPE
  } catch (Throwable e) {
    deployType = "master"
  }

  checkout scm

  if(deployType == 'dev'){
        stage '切换构建分支'
        sh "git checkout -b pro origin/zongbang-pro"
  }

  stage '构建版本'
  echo 'NOTE: running pipelines for the first time will take longer as build and base docker images are pulled onto the node'
  if (!fileExists ('Dockerfile')) {
    writeFile file: 'Dockerfile', text: '''FROM 10.0.6.228:5000/node-nginx:8.12.0-slim

WORKDIR /app

# 将当前目录下的所有文件拷贝到工作目录下
COPY . /app/
# 1.安装依赖
# 2.运行 npm run build
# 3.将 dist 目录的所有文件拷贝到 nginx 的目录下
# 4.删除工作目录的文件，尤其是 node_modules 以减小镜像体积
# 由于镜像构建的每一步都会产生新层
# 为了减小镜像体积，尽可能将一些同类操作，集成到一个步骤中，如下、
RUN  npm config set proxy=http://10.0.6.228:3128 \\
     && npm set registry https://registry.npm.taobao.org \\
     && npm install phantomjs-prebuilt@2.1.16 --ignore-scripts \\
     && npm install \\
     && npm run build \\
     && cp -r dist/* /var/www/html \\
     && cp nginx.conf /etc/nginx/conf.d \\
     && rm -rf /etc/nginx/sites-enabled \\
     && rm -rf /app'''

  }

  newVersion = performCanaryRelease {}

  def rc = getKubernetesJson {
    port = 80
    label = 'nodejs'
    version = newVersion
    name = projectName
    imageName = clusterImageName
  }

  if(deployType == 'master'){
      stage '部署master'
      kubernetesApply(file: rc, environment: envTest)
  }

  if(deployType == 'dev'){
    stage '部署dev'
    kubernetesApply(file: rc, environment: envPrd)
  }


}
