jenkins回滚之groovy动态获取版本号
grovvy调试:
部署路径确定下来, 每个服务写死,传参 服务名 + 环境 给版本服务返回版本信息: groovy取分支:
def gettags = ("git ls-remote -h git@gitlab.zi.com:crm/zi-crm-app.git").execute()
gettags.text.readLines().collect { it.split()[].replaceAll('refs/heads/', '') }.unique()
def gettags = ("ls -l").execute()
gettags.text.readLines().collect { it.split()[].replaceAll('refs/heads/', '') }.unique()
curl baidu.com
String[] envVars = jenkins.model.Jenkins.getInstance().getGlobalNodeProperties().toMap().collectMany{it.value.getEnvVars().collect{"$it.key=$it.value"}}
def jobName= manager.getEnvVariable('JOB_BASE_NAME')
echo -e `curl -s -d "sname=zi-data-dr-test-bk&env=test" 0.0.0.0:/version/|tr "\"" " "` def gettags = ("curl -s -d "env=zi-data-dr-test-bk,test" 10.11.7.183:8000/version/").execute()
gettags.text.readLines() def proc1 = ['/bin/bash', '-c', 'echo -e `curl -s -d "sname=zi-data-dr-test-bk&env=test" 10.11.7.183:8000/version/|tr "\"" " "`'].execute() def proc1 = ['/bin/bash', '-c', 'curl -s -d "sname=zi-data-dr-test-bk&env=test" 10.11.7.183:8000/version/'].execute()
pproc1 = ['echo -e', $proc1].execute()
def proc2 = ['/bin/bash', '-c', 'echo -e curl -s -d "env=zi-data-dr-test-bk,test" 10.11.7.183:8000/version/|tr "\"" " "'].execute() # def gettags = ['/bin/bash', '-c', 'curl -s -d "sname=zi-data-dr-test-bk&env=test" 10.11.7.183:8000/version/'].execute()
# gettags.text.readLines() Script:
if (BuildEnv.equals('test')) {
return ['test']
} else if (BuildEnv.equals('prod')) {
return ['prod']
} else {
return ['abc']
}
Fallback Script: return ['xxx'] def job_name = this.binding.jenkinsProject.name 这个可以获取到 def job_name = this.binding.jenkinsProject.name
def job_env= this.binding.BuildEnv
if (BuildEnv.equals('test')) {
def gettags = ['/bin/bash', '-c', 'curl -s -d "sname=${job_name}&env=${job_env}" 10.11.7.183:8000/version/'].execute()
return gettags.text.readLines()}
if (BuildEnv.equals('develop')) {
return [job_name,job_env]
}
jenkins回滚之groovy动态获取版本号的更多相关文章
- Jenkins pipeline job 根据参数动态获取触发事件的分支
此文需要有Jenkins pipeline job 的简单使用经验 场景 我们日常的测试函数, 一般是不能仅仅在本地跑的,还需要一个公共的跑测试的环境,作为合并新的PR的依据. 如果用Jenkins ...
- jenkins 回滚发布
#jenkins拉取文件路径 workspace=/data/wos/testtemp #备份路径 backspace=/data/wos/back #不能提Git的文件 config=/data/w ...
- Jenkins发布回滚方案
Jenkins回滚可以通过每次发布从主干打tag,然后发布的时候发tag,比如tag, v1, v2,v3 如果我发布了v3,想要回滚回v2,直接在Jenkins中选择v2的tag地址重新构建就可以回 ...
- PHP 基于 Jenkins ansible 动态选择版本进行自动化部署与回滚(第二版)
PHP 基于 Jenkins ansible 动态选择版本进行自动化部署与回滚(第二版) 先看流程图: 大概介绍一下: 版本选择使用jenkins 中的 git parameter 插件实现 回滚方式 ...
- Jenkins+Ansible+Gitlab自动发布/回滚Spring项目
一.实现方法流程图 流程图如下:代码托管在本地GitLab上(为了复现整套流水线,我直接使用了GitHub,懒得再搭建GitLab),开发完成后提交代码到代码仓库,[自动]触发Jenkins进行持续集 ...
- jenkins结合ansible用shell实现自动化部署和回滚
最近用jenkins+gitlab+ansible做持续化集成,自动化部署和版本回滚.然而deploy plugin没能做到增量升级和回滚操作,折腾了很久决定自己写个脚本来简单实现. 环境: cent ...
- 2、jenkins+svn自动发布和回滚
Jenkins配置回滚思路: 目前只能实现使用salt来管控配置文件的管控,配置文件的版本回滚需要后续定制化开发,或者进行格外其他的管理操作.后续实现 以下配置可以为每个项目备份构建文件到本地指定路径 ...
- Jenkins 打tag回滚
利用jenkins,从gitlab上拉取代码,然后发布,如果想进行代码回退,其实还是代码发布,拉取的时候,选择合适的标签. 一.利用Git parameter插件选择branch或tag.下面的文本参 ...
- 自动化部署-Jenkins备份回滚
1.备份 备份可以使用批处理命令解决,实际就是复制当前发布文件 ::备份文件夹名,使用当前时间 set foldername=%date:~0,4%%date:~5,2%%date:~8,2%%tim ...
随机推荐
- LeetCode(数据库):分数排名
,)); Truncate table Scores; ', '3.5'); ', '3.65'); ', '4.0'); ', '3.85'); ', '4.0'); ', '3.65'); 编写一 ...
- GITHUB手册
GitHub 指南 原文地址:GitHub官网指南 示例项目:Hello World 十分钟轻松教学 在学习计算机语言编程的过程中创建Hello World 项目是一个历史悠久的传统.当你接触一门新事 ...
- hexo与github page搭建博客
安装 npm i hexo-cli -g hexo init blog cd blog npm install hexo server 发布hexo到github page npm i hexo-de ...
- AFL Fuzz安装及完成一次简单的模糊测试
关于AFL fuzz AFL fuzz是一个模糊测试工具,它封装了一个GCC/CLang编译器,用于对被测代码重新编译的过程中进行插桩.插桩完毕后,AFL fuzz就可以给其编译过的代码输入不同的参数 ...
- OLED液晶屏幕(0)自动获取12ic地址液晶屏幕
. 烧录 串口可以看到输出的地址 #include <Wire.h> void setup(){ Wire.begin(); Serial.begin(9600); Serial.prin ...
- .net core 根据已有数据库创建实体Model
这三个引用需要与.net core 版本一致,否则后续其他操作时会出错 可以到NuGET包中找到对应的版本然后添加,或者使用一下语句将版本号修改为.net core对应的版本然后执行 Install- ...
- S1_搭建分布式OpenStack集群_10 cinder 存储节点配置
一.安装配置lvm2安装LVM包:# yum install -y lvm2 启动LVM元数据服务,并将其配置为在系统启动时启动:# systemctl enable lvm2-lvmetad.ser ...
- 题目一:编写一个类Computer,类中含有一个求n的阶乘的方法
作业:编写一个类Computer,类中含有一个求n的阶乘的方法.将该类打包,并在另一包中的Java文件App.java中引入包,在主类中定义Computer类的对象,调用求n的阶乘的方法(n值由参数决 ...
- 微信小程序基本语法
渲染 .js page ({ data :{ memo:'hello world' } }) .wxml <view>{{memo}}</view> 绑定id .js page ...
- 完美兼容IE10以下所有版本
IE一直是个恶心东西 各种不支持 现在发现了个好东西可以兼容ie10以下所有浏览器 <!--[if lte IE 9]><script>window.location.href ...