Jenkins配置说明

dev环境前端项目部署说明

  • 原始方式

    1. 构建脚本
      rm -rf dist.tar.gz
      cnpm install
      cnpm run build 
      cd dist
      tar -zcvf dist.tar.gz * 
    2. 部署脚本
      cd /home/jenkinswork/nginx/html
      tar -xzvf dist.tar.gz
      rm -rf dist.tar.gz
  • Docker方式

    1. 构建脚本
      cnpm install
      cnpm run build
      cp -r dist dev
      cd dev
      docker build -t registry.cn-shenzhen.aliyuncs.com/jck/dev-pig-ui:latest .
      docker push registry.cn-shenzhen.aliyuncs.com/jck/dev-pig-ui:latest
    2. 部署脚本
      docker stop  dev-pig-ui 
      docker rm dev-pig-ui
      docker pull registry.cn-shenzhen.aliyuncs.com/jck/dev-pig-ui:latest
      docker run -d -p  8666:80 --restart=always  --name dev-pig-ui   registry.cn-shenzhen.aliyuncs.com/jck/dev-pig-ui:latest

dev环境后台项目部署说明

  • 构建脚本

      clean package  -Dmaven.test.skip=true -U -Pdev
  • 部署脚本

      #!/bin/bash
      source /etc/profile
      #注意这里   部署地址
      cd /home/jenkinswork/public/contract-biz
      #这里可替换为你自己的执行程序,其他代码无需更改
      export  APP_NAME=${JOB_NAME}
      #检查程序是否在运行
      is_exist(){
        pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
        #如果不存在返回1,存在返回0     
        if [ -z "${pid}" ]; then
         return 1
        else
          return 0
        fi
      }
      #启动方法
      start(){
        is_exist
        if [ $? -eq 0 ]; then
          echo "${APP_NAME} is already running. pid=${pid}"
        else
            #删除历史日志
          rm -rf  /home/jenkinswork/log/${APP_NAME}.out
          nohup java -Xms256m -Xmx256m -jar ${APP_NAME}.jar > /home/jenkinswork/log/${APP_NAME}.out 2>&1 &
        fi
      }
      #停止方法
      stop(){
        is_exist
        if [ $? -eq "0" ]; then
          kill -9 $pid
        else
          echo "${APP_NAME} is not running"
        fi  
      }
      stop
      sleep 5    
      start

sit环境前端项目部署说明

  • 构建脚本

      cnpm install
      cnpm run build 
      cp -r dist docker
      cd docker
      #打docker包
      docker build -t registry.cn-shenzhen.aliyuncs.com/jck/${env}-${projectName}:${version} .
      #推送包
      docker push  registry.cn-shenzhen.aliyuncs.com/jck/${env}-${projectName}:${version}
  • 部署脚本

      curl -X DELETE \
        -H "Content-Type: application/yaml" \
        -H "Authorization:Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6InVlNUdYcl94c0lxQ0ZMU3JVREp2X2tzeUxkREVpaWxrNFJOQU50YzMtd2cifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJvYXJkLXVzZXItdG9rZW4tYjRzbmMiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoia3Vib2FyZC11c2VyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYTdkNjRjN2YtOTIzNy00ODEyLWI3YjEtOWUzODhiZTBiOWI5Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmt1Ym9hcmQtdXNlciJ9.LGtBFOb8jn2sYdRTvqUI9HxtDUtF5FqI-14XIm8tAlW2GomTtCM9nJsPc6Iuyzu8ZMZNKTmRsc73tTXXN8Xi36x9OiFkKO7cNmhB1rnnv1qP5G13XM8HyAbWNk7-WAq71CKq2Ahh22ERfIsmSny6HG_tuFNOpCFKIcquUm2eFmHE9uq9O4x4QqpxOCebCnzGulsH3eZL4vXjfBmPeCZsJYWh4fJussoO1rtd5vxSsjGpaKrTNgt4hJGH76qra3SWYUEK9T5_DuCL2b6YJuyq1o7iaqsfbJsUxD_MW6iEMHjMSe0Mfz75LM-0c6aVSfQpymgP-A4VG6NOSes7WYrHjA" \
        "http://10.0.0.61:32567/k8s-api/api/v1/namespaces/default/pods?labelSelector=k8s.eip.work/layer%3dweb,k8s.eip.work/name%3dcontract-ui"
  • 版本上线日志脚本

      #获取git最新提交记录
      gitlogs=`git log -n 50`;
    
      #去除双引号
      gitlogs=`echo $gitlogs | sed 's/\"//g'`;
    
      #发送请求
      curl -i -X POST -H "Content-Type:application/json" -X POST -d '{"logs":"'"$gitlogs"'","version":"'"$version"'","env":"'"$env"'","projectName":"'"$projectName"'"}' http://10.0.0.125:11111/api/version/manager

sit环境后端项目部署说明

  • 打包脚本

    clean package  -Dmaven.test.skip=true -U -Psit sonar:sonar
  • 构建脚本

     #请修改目录级,后面的数据可以不用修改
     cd ${projectName}
    
     #复制已经打包好的jar到docker目录
     cp -r target/*.jar  src/main/docker
     #进入docker目录
     cd src/main/docker
     #打docker包
     docker build -t registry.cn-shenzhen.aliyuncs.com/jck/${env}-${projectName}:${version} .
     #推送包
     docker push  registry.cn-shenzhen.aliyuncs.com/jck/${env}-${projectName}:${version}
  • 部署脚本

      curl -X DELETE \
        -H "Content-Type: application/yaml" \
        -H "Authorization:Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6InVlNUdYcl94c0lxQ0ZMU3JVREp2X2tzeUxkREVpaWxrNFJOQU50YzMtd2cifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJvYXJkLXVzZXItdG9rZW4tYjRzbmMiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoia3Vib2FyZC11c2VyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYTdkNjRjN2YtOTIzNy00ODEyLWI3YjEtOWUzODhiZTBiOWI5Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmt1Ym9hcmQtdXNlciJ9.LGtBFOb8jn2sYdRTvqUI9HxtDUtF5FqI-14XIm8tAlW2GomTtCM9nJsPc6Iuyzu8ZMZNKTmRsc73tTXXN8Xi36x9OiFkKO7cNmhB1rnnv1qP5G13XM8HyAbWNk7-WAq71CKq2Ahh22ERfIsmSny6HG_tuFNOpCFKIcquUm2eFmHE9uq9O4x4QqpxOCebCnzGulsH3eZL4vXjfBmPeCZsJYWh4fJussoO1rtd5vxSsjGpaKrTNgt4hJGH76qra3SWYUEK9T5_DuCL2b6YJuyq1o7iaqsfbJsUxD_MW6iEMHjMSe0Mfz75LM-0c6aVSfQpymgP-A4VG6NOSes7WYrHjA" \
        "http://10.0.0.61:32567/k8s-api/api/v1/namespaces/default/pods?labelSelector=k8s.eip.work/layer%3dsvc,k8s.eip.work/name%3dcontract-biz"
  • 版本上线日志脚本

      #获取git最新提交记录
      gitlogs=`git log -n 50`;
    
      #去除双引号
      gitlogs=`echo $gitlogs | sed 's/\"//g'`;
    
      #发送请求
      curl -i -X POST -H "Content-Type:application/json" -X POST -d '{"logs":"'"$gitlogs"'","version":"'"$version"'","env":"'"$env"'","projectName":"'"$projectName"'"}' http://10.0.0.125:11111/api/version/manager

Sonar代码质量扫描脚本说明

前端

在构建脚本中添加扫描插件

sonar-scanner   -Dsonar.projectKey=${projectName}   -Dsonar.sources=src

后端

在打包脚本后方添加sonar:sonar 即可

clean package  -Dmaven.test.skip=true -U -Psit sonar:sonar

JavaDoc文档部署脚本说明

可直接根据开发人员开发的Java代码直接生成Javadoc文档,在 代码文档 中进行查看

需要在 Jenkins Pre Steps环节添加脚本执行。直接执行 /jenkinsjavadoc.sh 即可触发脚本

脚本说明

  1. 获取Git代码地址
  2. 截取Git的项目名称
  3. 直接执行Javadoc 并遍历文件名称为. java后缀的所有文件目录 使用-d的方式直接输出到path路径中。
  4. path路径默认为 /javadoc下的每一个文件夹
  5. 使用zip 进行文件打包
  6. 删除javadoc生成的临时文件
  7. 使用ftp传递到10.0.0.129的http://javadoc.yiqing.com网站的根目录
  8. 退出ftp链接
  9. 在10.0.0.129上会存在一个定时任务直接将此目录的zip文件自动解压
  10. 脚本完成

脚本示例

echo ${WORKSPACE}
#定义名称
uri=${GIT_URL##*/}
#定义名称

name=${uri%%.*}
#
cd /javadoc
path="./"${uri%%.*}

echo ${name}

javadoc -private -splitindex -use -author -version -encoding utf-8 -charset utf-8 -d    ${path}   -classpath `find ${WORKSPACE} -name *.java`   & 


echo "名称 为:${name}  路径为:${path}"


#壓縮
zip -r ${name}.zip ${name}

rm -r  ${path}

#传递
ftp -n<<!
open  10.0.0.129
user  javadoc_yiqing_com javadoc_yiqing_com 

put  ${path}.zip  ${name}.zip
close
!

Git Commit日志记录脚本说明

说明 :通过每一次打包的时候都将此项目的提交日志直接存放到我们独立的一个后台服务中,并将其新增的功能细节,直接对接到禅道上面的版本上线中。方便测试与运维使用

此脚本必须要在Jenkins的Post Steps步骤中进行操作,如果Jenkins部署没有成功,则不生成工作记录

脚本示例

#获取git最新提交记录
gitlogs=`git log -n 50`;

#去除双引号
gitlogs=`echo $gitlogs | sed 's/\"//g'`;

#发送请求
curl -i -X POST -H "Content-Type:application/json" -X POST -d '{"logs":"'"$gitlogs"'","version":"'"$version"'","env":"'"$env"'","projectName":"'"$projectName"'"}' http://10.0.0.125:11111/api/version/manager

CICD

脚本说明

kuboard的版本更新CICD脚本,将打成的Docker推送到云服务器之后,会直接通过curl方式直接触发删除pods中的容器组,让容器组自动更新最新的版本,容器组的抓取策略必须为:Always

脚本示例

curl -X DELETE \
  -H "Content-Type: application/yaml" \
  -H "Authorization:Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXKEY" \
  "http://10.0.0.61:32567/k8s-api/api/v1/namespaces/default/pods?labelSelector=k8s.eip.work/layer%3dsvc,k8s.eip.work/name%3dauth-mgr"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值