それは説明するリポジトリとしてsvnに基づいているため、jenkinsのデプロイメントリリースに基づいてWebプログラムに関するいくつかのブログ記事をリリースした前の期間の結果として。今回は、プログラムのリリースを達成するために、プログラムのバージョンを指定するためにsvnタグを選択するようなソリューションの実装と組み合わせたjenkinsとリポジトリとして私にgitを尋ねたいくつかの友人があります。
時間と理由がありますが、この記事ではあまり詳細に入ることはありません、読者が把握するために行うことができます!
さっそくですが、本番環境へのデプロイに現在使用しているjenkinsのスクリーンショットをお見せしましょう!
コンフィギュレーションのスクリーンショットを以下に示します。
gitパラメータプラグインをテストした後、需要を満たすことができないので、あなただけのjenkinsで独自のタグリストを作成することができます。
拡張可能なドロップダウンメニューを作成し、指定されたgitバージョンのプログラムのタグのリストをプログラムで生成します。
アプリケーションのソースコードを管理するために、gitリポジトリのURLにアプリケーションのgitアドレスを追加します。
以下の2つのオプションが可能です。
特定のタグへのチェックアウト:このステップは重要です。
この時点で、jenkinsとgitの統合は達成されました!これは、少し前に投稿したデプロイメントシリーズのsvnとgitの違いでもあります!
オンラインのgitプラグインインストールの下でjenkinsは、ここの多くはもはや導入されていません!
ひとつ覚えておいてほしいのは、gitタグリスト機能は自分のニーズに合わせて開発できるということです!
これは私が自分のニーズに合わせて実装したものです。
まずはプログラムの構成図から。
git.php
2345678910111213141516171819202122232425262728293031323334353637383940 <?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("
",$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
#!/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
#!/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
シェルスクリプトを実行します。
ブログのアドレス





