基于jenkins动态化参数化构建
2016-03-24 10:34
477 查看
由于上一篇是通过触发git操作来实现自动化构建和发布,回滚和发布不太可控,可以采用动态参数获取发布分支的方式方便发布和回滚
目标:选择合适版本发布到合适的服务器环境(目前分支策略是,提测时创建发布分支release-
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')
其他方式参考:/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
5.测试
版权声明:本文为Geekwolf原创文章,转载时请注明作者及本文链接
本文链接:http://www.simlinux.com/archives/549.html
目标:选择合适版本发布到合适的服务器环境(目前分支策略是,提测时创建发布分支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') |
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 |
版权声明:本文为Geekwolf原创文章,转载时请注明作者及本文链接
本文链接:http://www.simlinux.com/archives/549.html
相关文章推荐
- Python append 和 .join
- 【jdk1.8】Integer源码分析
- 动画—Core Animation初步学习二: 基础动画
- 安装完ActivePython后Python的Idle窗口打不开也卸载不掉的解决方法
- 生成bundle和移除bundle
- HDU1561 The more, The Better(树形dp)
- iOS常用宏定义
- oc-29-可变数组
- js、javascript正则表达式验证身份证号码
- Android ANR异常及解决方法
- HustOj使用脚本开启判题功能
- 【bzoj2179】FFT快速傅立叶 FFT
- 基于jenkins+gitlab+redmine构建持续集成环境(一)
- 杭电2074—叠筐
- Spring分层矛盾问题
- ios 遍历方式
- 在Mac上配置/使用Github
- 【操作系统】关于C语言设计程序退出自动关闭窗口的问题
- SQLServer 服务器架构迁移
- 工作日志的利器:迷人的MARKDOWN