自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

基于jenkins結(jié)合git實(shí)現(xiàn)web程序的多服務(wù)器批量發(fā)布

開發(fā) 前端
由于前一段時(shí)間發(fā)布了幾篇關(guān)于web程序基于jenkins部署發(fā)布的博文,由于是基于svn作為版本庫講解的。這段時(shí)間有一些朋友問我git作為版本庫的與jenkins結(jié)合實(shí)現(xiàn)像選擇svn tag指定程序版本的實(shí)現(xiàn)發(fā)布程序的解決方案。

由于前一段時(shí)間發(fā)布了幾篇關(guān)于web程序基于jenkins部署發(fā)布的博文,由于是基于svn作為版本庫講解的。這段時(shí)間有一些朋友問我git作為版本庫的與jenkins結(jié)合實(shí)現(xiàn)像選擇svn tag指定程序版本的實(shí)現(xiàn)發(fā)布程序的解決方案。

有與時(shí)間原因,本篇不在過多贅述細(xì)節(jié),讀者可以動手揣摩!

直接先給大家看一下我目前正在使用的部署到生產(chǎn)環(huán)境下的jenkins截圖!

wKioL1NgVASBtIdkAAGYeWCLSdQ843.jpg

下面給出配置截圖:

經(jīng)過測試git parameter plugin不能滿足我們的需求,所以我們只能自己在jenkins中創(chuàng)建tag list。添加寫一下如圖步驟:

wKioL1NgVyrhZCikAACHdmdSqhM983.jpg

自己寫一個可擴(kuò)展下拉菜單,通過程序生成指定git版本下的程序的tags列表

wKioL1NgVKOxc20VAAJHXAdAIHw875.jpg

下面是程序的源碼管理,在git repositories url 中添加我們程序的git地址

下圖兩種方式都行:

wKiom1NgWU7T8SCVAABE4RpLbjc762.jpg

注意我們這個時(shí)候選擇的是master版本,意味著我的程序都是穩(wěn)定版本(在開發(fā)過程中使用git-flow流程來控制版本開發(fā)流程)。

wKiom1NgWFGyZoTzAAEIcXxWVVo509.jpg

簽出到指定的tag:這一步很重要:

wKioL1NgVq7RkA9RAAGCguY-hds446.jpg

到此我們已經(jīng)實(shí)現(xiàn)了jenkins與git的集成結(jié)合!這也是前段時(shí)間發(fā)布的部署系列svn與git的不同之處!

至于wKioL1NgW4WRCgumAAAf4_gp53c882.jpg部分沒有變化!

jenkins下git的插件安裝網(wǎng)上很多這里不再介紹!

需要注意一點(diǎn)可以根據(jù)自己的需求開發(fā)出git tag list的功能!

下面給出我按照自己的需求實(shí)現(xiàn)的一個:

先給出程序結(jié)構(gòu)圖:

wKiom1NgXwvhDQwAAACeRcFYRqU135.jpg

git.php

  1. 2345678910111213141516171819202122232425262728293031323334353637383940 <?php   
  2. $giturl=$_REQUEST["giturl"];   
  3. $arr=explode("/",$giturl);   
  4. $names=$arr[count($arr)-1];   
  5. $namearr=explode(".",$names);   
  6. $name=$namearr[0];   
  7. $rebuild=true;   
  8. $tagpath="/var/www/tags/list/$name";   
  9. if(file_exists($tagpath))   
  10. {   
  11.     $content = file_get_contents($tagpath);   
  12.     $tags=explode("\n",$content);   
  13.     //unlink($tagpath);   
  14.     unset($tags[count($tags)-1]);   
  15.     if(count($tags)>0)   
  16.     {   
  17.         $tags=array_reverse($tags);   
  18.         echo "tags=".implode(",",$tags);   
  19.     }   
  20.     else{   
  21.         echo "tagsno tags";   
  22.     }   
  23.     $ctime=filectime($tagpath);   
  24.     $now=time();   
  25.     $ti=$now-$ctime;   
  26.     if($ti<60)   
  27.     {   
  28.         $rebuild=false;   
  29.     }   
  30. }   
  31. else  
  32. {   
  33.     echo "tagsIs loading tags ; please try again later";   
  34. }   
  35. if($rebuild)   
  36. {   
  37.     $cmd="echo $name $giturl > /var/www/tags/info/$name";   
  38.     exec($cmd,$info,$rebt);   
  39. }   
  40. ?>  

inotify.sh

  1. #!/bin/bash   
  2. #create by lhb   
  3. #date 2014-02-08   
  4. #monitor file change   
  5. workplace=/var/www/tags  
  6. src=$workplace/info/  
  7. lists=$workplace/list  
  8. /usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f %e' -e close_write $src \   
  9.    | while read file  
  10.     do  
  11.    fn=`echo $file |awk '{print $3}'`   
  12.    arr=(`cat $fn |awk '{print $1,$2}'`)   
  13.    pro_name=${arr[0]}   
  14.    pro_url=${arr[1]}   
  15.    #echo $pro_name   
  16.    #echo $pro_url   
  17.    /bin/bash $workplace/get_tags.sh $pro_name $pro_url > $lists/$pro_name   
  18.    chown www-data:www-data $lists/$pro_name   
  19.    echo $?   
  20.  done 

get_tags.sh

  1. #!/bin/bash   
  2. #create by lhb   
  3. #date 2014-02-08   
  4. #get git code tag list   
  5. codepath=/tmp/$1   
  6. [ -d "$codepath" ] || {   
  7.   cd /tmp/  
  8.   /usr/bin/git clone $2 &> /dev/null  
  9. }   
  10. cd $codepath   
  11. /usr/bin/git pull &> /dev/null  
  12. /usr/bin/git tag   
  13. rm -rf $codepath 

執(zhí)行shell腳本:

wKiom1NgZKOBqGe8AAEKX3lor7k347.jpg

如有不明白的地方,可以參考我的部署系列文章或線上交流!

博客地址:http://birdinroom.blog.51cto.com/7740375/1404930

責(zé)任編輯:林師授 來源: 51cto博客
相關(guān)推薦

2021-08-05 17:40:05

XpanesLinux服務(wù)器

2017-11-10 08:58:49

Web服務(wù)器應(yīng)用程序

2009-06-11 09:20:15

GlassFish是什OSGi

2019-05-14 09:39:07

Web服務(wù)器Web容器應(yīng)用程序服務(wù)器

2011-11-04 16:50:33

UbuntuARM服務(wù)器

2019-07-21 19:40:25

服務(wù)器開發(fā) 架構(gòu)

2011-09-08 10:42:38

Web服務(wù)器Nginx

2012-07-24 09:32:04

2011-02-23 15:06:00

WebCherokee

2009-03-24 09:44:59

2012-02-24 09:22:30

Web服務(wù)器Apache 2.4

2020-01-18 18:41:13

GitGit服務(wù)器開源

2011-11-22 21:26:59

pfSense配置Web服務(wù)器負(fù)載均衡

2010-11-19 12:53:53

梭子魚負(fù)載均衡

2011-08-31 16:37:51

Nginx

2009-07-09 10:25:05

Servlet的Web

2011-07-07 15:43:51

服務(wù)器安裝

2017-12-29 09:47:11

Web服務(wù)器萬維網(wǎng)

2010-02-23 16:08:15

2010-07-02 10:14:36

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號