免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

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

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

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

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



下面給出配置截圖:


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




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



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

下圖兩種方式都行:

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



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




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

至于

部分沒有變化!


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


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


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

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


git.php


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


inotify.sh

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

get_tags.sh


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



執(zhí)行shell腳本:


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





本文出自 “宅鳥樂園” 博客,請務(wù)必保留此出處http://birdinroom.blog.51cto.com/7740375/1404930

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
jenkins+gitlab鉤子+shell腳本基于git的tag實現(xiàn)App增量更新
Jenkins實戰(zhàn)應(yīng)用–Jenkins構(gòu)建中tag的應(yīng)用
Linux下的Jenkins+Tomcat+Maven+Git+Shell環(huán)境的搭建使用(jenkins自動化部署)
Jenkins+Ansible+GitLab持續(xù)交付平臺搭建-第5篇
Gitlab+Jenkins+Docker+k8s+Helm自動化部署
Jenkins與Docker的自動化CI/CD實戰(zhàn)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服