由于上一篇是通过触发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')
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.测试