jenkins更新前端代码

一、背景

由于公司项目前端主要涉及小程序端和h5端,小程序主要是前端同学自己发布代码到微信服务器,h5端主要是一些后台管理系统代码,会涉及到频繁更新;前端更新的本质就是替换文件,我们的更新流程是从测试更新到灰度,然后从灰度更新到生产。

二、从测试更新到灰度

2.1 项目参数

1.需要更新的项目,可以传入多行数据

2.项目运行节点,221为灰度机器

2.2 执行时shell

1.判断project中是否包含".",如果不包含"."就更新目录,反之更新文件

#!/bin/sh

cd /opt/www

for project in  $projects 
do
  biaoji="."
  if [[ "$project" =~ "$biaoji" ]]; then
    mgtype="file"
  else
    mgtype="menu"
  fi
  
  echo "$project is $mgtype"
  
  if [ "menu" == "$mgtype" ]; then
    if [ -d $project ]; then 
      echo "$project is exist"
    else 
      mkdir -p $project
    fi
    
    rm -rf $project/*
    
    echo "sshpass -p 123456 scp -r -P 3721 [email protected]:/opt/www/$project/*  $project/"
    
    sshpass -p "123456" scp -r -P 3721 [email protected]:/opt/www/$project/*  $project/
  else
    echo "sshpass -p \"123456\" scp -r -P 3721 [email protected]:/opt/www/$project  $project"
    
    sshpass -p "123456" scp -r -P 3721  [email protected]:/opt/www/$project  $project
  fi
  
done

三、从灰度更新到生产

3.1 项目参数

1.是否需要备份

2.需要更新的项目,可以传入多行目录

3.项目运行节点,10.8.0.8为A环境nginx

3.2 执行时shell

1.判断是否需要备份

2.根据是否含有“.”标记判断更新目录还是文件

#!/bin/sh
today=`date "+%Y%m%d-%H%M"`
mkdir /bak/www-$today

who
echo "$today"

cd /nginx/www

for project in  $projects 
do
  biaoji="."
  if [[ "$project" =~ "$biaoji" ]]; then
    mgtype="file"
  else
    mgtype="menu"
  fi

  if [ "yes" == "$backup" ]; then
    if [ "menu" == "$mgtype" ]; then
      mkdir -p /bak/www-$today/$project
    else 
      mkdir -p /bak/www-$today/${project%/*}
    fi
    
    cp -r /opt/www/$project /bak/www-$today/
  fi

  echo "$project is $mgtype"
  
  if [ "menu" == "$mgtype" ]; then
    if [ -d $project ]; then 
      echo "$project is exist"
    else 
      mkdir -p $project
    fi
 
    pwd
  	echo 'sshpass -p "Mogupro0601sz" scp -r  [email protected]:/opt/www/'$project'/*  '$project'/'
    sshpass -p "Mogupro0601sz" scp -r  [email protected]:/opt/www/$project/*  $project/
  else
  	echo 'sshpass -p "Mogupro0601sz" scp -r  [email protected]:/opt/www/'$project' '$project
    sshpass -p "Mogupro0601sz" scp -r  [email protected]:/opt/www/$project  $project
  fi
done
发布了161 篇原创文章 · 获赞 40 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/qq_36441027/article/details/103129871