日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
基于jenkins結(jié)合git實(shí)現(xiàn)web程序的多服務(wù)器批量發(fā)布

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

創(chuàng)新互聯(lián)建站主營莎車網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā)公司,莎車h5成都小程序開發(fā)搭建,莎車網(wǎng)站營銷推廣歡迎莎車等地區(qū)企業(yè)咨詢

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

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

下面給出配置截圖:

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

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

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

下圖兩種方式都行:

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

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

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

至于部分沒有變化!

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

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

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

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

git.php

 
 
  1. 2345678910111213141516171819202122232425262728293031323334353637383940 
  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 "tags= no 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 "tags= Is 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腳本:

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

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


網(wǎng)頁標(biāo)題:基于jenkins結(jié)合git實(shí)現(xiàn)web程序的多服務(wù)器批量發(fā)布
標(biāo)題鏈接:http://www.dlmjj.cn/article/dppdihi.html