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

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
所有评论(0)