您的位置:首页 > 其它

基于jenkins动态化参数化构建

2016-03-24 10:34 477 查看
由于上一篇是通过触发git操作来实现自动化构建和发布,回滚和发布不太可控,可以采用动态参数获取发布分支的方式方便发布和回滚
目标:选择合适版本发布到合适的服务器环境(目前分支策略是,提测时创建发布分支release-
date  +%Y%m%d-%H%M%S

1.安装插件Dynamic Parameter Plug-in
2.设置 参数化构建过程





3.使用groovy脚本动态获取发布分支

def ver_keys = [ 'bash', '-c', 'cd /gitrepos/project1; git pull>/dev/null; git branch -a|grep remotes|grep release|cut -d "/" -f3|sort -r |head -10 ' ]
ver_keys.execute().text.tokenize('\n')

1
2

def
ver_keys =
[ 'bash',
'-c',
'cd /gitrepos/project1; git pull>/dev/null; git branch -a|grep remotes|grep release|cut -d "/" -f3|sort -r |head -10 '
]

ver_keys.execute().text.tokenize('\n')

其他方式参考:/article/4122276.html
4.构建脚本



echo $release_version
echo $deploy_server
case $deploy_server in
test)
echo "This server is $deploy_server -----test enviroment"
cd /gitrepos/project1/
git checkout $release_version
git pull origin $release_version
rsync -avH --delete --progress --exclude=robots.txt --exclude=.gitignore --exclude=.git --exclude=.DS_Store --exclude="*.tar" /gitrepos/project1/ /gitrepos/project1/
;;
prod)
echo "This server is $deploy_server ------production enviroment"
cd /gitrepos/project1/
git checkout $release_version
git pull origin $release_version
rsync -avH --delete --progress --exclude=robots.txt --exclude=.gitignore --exclude=.git --exclude=.DS_Store --exclude="*.tar" '-e ssh -p 22000' /gitrepos/project1/ www@node1.simlinux.com:/gitrepos/project1/
;;
*)
exit
;;
esac

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

echo
$release_version

echo $deploy_server
case
$deploy_server
in

test)

echo "This server is $deploy_server -----test enviroment"

cd
/gitrepos/project1/

git checkout
$release_version

git pull
origin $release_version

rsync -avH
--delete
--progress --exclude=robots.txt
--exclude=.gitignore --exclude=.git
--exclude=.DS_Store
--exclude="*.tar" /gitrepos/project1/ /gitrepos/project1/

;;
prod)

echo
"This server is $deploy_server ------production enviroment"
cd /gitrepos/project1/

git checkout
$release_version
git
pull origin
$release_version

rsync
-avH
--delete
--progress --exclude=robots.txt
--exclude=.gitignore --exclude=.git
--exclude=.DS_Store
--exclude="*.tar" '-e ssh -p 22000'
/gitrepos/project1/ www@node1.simlinux.com:/gitrepos/project1/

;;

*)

exit

;;
esac

5.测试





版权声明:本文为Geekwolf原创文章,转载时请注明作者及本文链接

本文链接:http://www.simlinux.com/archives/549.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: