由于上一篇是通过触发git操作来实现自动化构建和发布,回滚和发布不太可控,可以采用动态参数获取发布分支的方式方便发布和回滚
目标: 选择合适版本发布到合适的服务器环境(目前分支策略是,提测时创建发布分支release- date +%Y%m%d-%H%M%S
1.安装插件 Dynamic Parameter Plug-in
2.设置 参数化构建过程
3.使用groovy脚本动态获取发布分支
PHP
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')
其他方式参考:
http://birdinroom.blog.51cto.com/7740375/1404930
4.构建脚本
PHP
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.测试