成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

基于jenkins結合git實現web程序的多服務器批量發布

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

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

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

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

wKioL1NgVASBtIdkAAGYeWCLSdQ843.jpg

下面給出配置截圖:

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

wKioL1NgVyrhZCikAACHdmdSqhM983.jpg

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

wKioL1NgVKOxc20VAAJHXAdAIHw875.jpg

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

下圖兩種方式都行:

wKiom1NgWU7T8SCVAABE4RpLbjc762.jpg

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

wKiom1NgWFGyZoTzAAEIcXxWVVo509.jpg

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

wKioL1NgVq7RkA9RAAGCguY-hds446.jpg

到此我們已經實現了jenkins與git的集成結合!這也是前段時間發布的部署系列svn與git的不同之處!

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

jenkins下git的插件安裝網上很多這里不再介紹!

需要注意一點可以根據自己的需求開發出git tag list的功能!

下面給出我按照自己的需求實現的一個:

先給出程序結構圖:

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 

執行shell腳本:

wKiom1NgZKOBqGe8AAEKX3lor7k347.jpg

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

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

責任編輯:林師授 來源: 51cto博客
相關推薦

2021-08-05 17:40:05

XpanesLinux服務器

2017-11-10 08:58:49

Web服務器應用程序

2011-09-08 10:42:38

Web服務器Nginx

2012-07-24 09:32:04

2019-05-14 09:39:07

Web服務器Web容器應用程序服務器

2009-06-11 09:20:15

GlassFish是什OSGi

2011-11-04 16:50:33

UbuntuARM服務器

2019-07-21 19:40:25

服務器開發 架構

2011-02-23 15:06:00

WebCherokee

2009-03-24 09:44:59

2012-02-24 09:22:30

Web服務器Apache 2.4

2020-01-18 18:41:13

GitGit服務器開源

2011-08-31 16:37:51

Nginx

2010-11-19 12:53:53

梭子魚負載均衡

2011-11-22 21:26:59

pfSense配置Web服務器負載均衡

2010-07-02 10:14:36

2009-07-09 10:25:05

Servlet的Web

2011-07-07 15:43:51

服務器安裝

2017-12-29 09:47:11

Web服務器萬維網

2010-02-23 16:08:15

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美性大战久久久久久久蜜臀 | 在线观看免费高清av | 成人免费毛片在线观看 | 成人激情视频在线观看 | 亚洲1区| 久久综合一区 | 在线视频一区二区三区 | 黄色在线网站 | 成人一区二 | 91在线区| 国产一级电影在线 | 伊人网站视频 | 日本成人区 | 亚洲精品久久久久久久久久久 | a看片 | 精品国产一级片 | 精品国产乱码一区二区三 | 成人免费淫片aa视频免费 | 亚洲国产精品久久久 | www亚洲精品 | 男女污污动态图 | 成人区精品一区二区婷婷 | 成人不卡 | 亚洲欧美视频 | 成人精品一区二区户外勾搭野战 | 久久精品99国产精品日本 | www.狠狠干| 欧美日韩成人在线 | 国产视频福利一区 | 成人影院一区二区三区 | 国产精品中文字幕一区二区三区 | 成人精品一区二区三区 | 欧美综合一区二区三区 | 欧美日韩高清一区二区三区 | 尤物在线精品视频 | 亚洲免费视频播放 | 夜夜爽99久久国产综合精品女不卡 | 激情在线视频网站 | 久久99精品久久久久 | 在线一级片 | 成人国产网站 |